| @ -0,0 +1,227 @@ | |||
| <template> | |||
| <a-card :bordered="false"> | |||
| <!-- 查询区域 --> | |||
| <div class="table-page-search-wrapper"> | |||
| <a-form layout="inline" @keyup.enter.native="searchQuery"> | |||
| <a-row :gutter="24"> | |||
| </a-row> | |||
| </a-form> | |||
| </div> | |||
| <!-- 查询区域-END --> | |||
| <!-- 操作按钮区域 --> | |||
| <div class="table-operator"> | |||
| <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> | |||
| <a-button type="primary" icon="download" @click="handleExportXls('han_hai_member')">导出</a-button> | |||
| <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> | |||
| <a-button type="primary" icon="import">导入</a-button> | |||
| </a-upload> | |||
| <!-- 高级查询区域 --> | |||
| <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> | |||
| <a-dropdown v-if="selectedRowKeys.length > 0"> | |||
| <a-menu slot="overlay"> | |||
| <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item> | |||
| </a-menu> | |||
| <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button> | |||
| </a-dropdown> | |||
| </div> | |||
| <!-- table区域-begin --> | |||
| <div> | |||
| <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> | |||
| <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 | |||
| <a style="margin-left: 24px" @click="onClearSelected">清空</a> | |||
| </div> | |||
| <a-table | |||
| ref="table" | |||
| size="middle" | |||
| :scroll="{x:true}" | |||
| bordered | |||
| rowKey="id" | |||
| :columns="columns" | |||
| :dataSource="dataSource" | |||
| :pagination="ipagination" | |||
| :loading="loading" | |||
| :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" | |||
| class="j-table-force-nowrap" | |||
| @change="handleTableChange"> | |||
| <template slot="htmlSlot" slot-scope="text"> | |||
| <div v-html="text"></div> | |||
| </template> | |||
| <template slot="imgSlot" slot-scope="text,record"> | |||
| <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> | |||
| <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> | |||
| </template> | |||
| <template slot="fileSlot" slot-scope="text"> | |||
| <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> | |||
| <a-button | |||
| v-else | |||
| :ghost="true" | |||
| type="primary" | |||
| icon="download" | |||
| size="small" | |||
| @click="downloadFile(text)"> | |||
| 下载 | |||
| </a-button> | |||
| </template> | |||
| <span slot="action" slot-scope="text, record"> | |||
| <a @click="handleEdit(record)">编辑</a> | |||
| <a-divider type="vertical" /> | |||
| <a-dropdown> | |||
| <a class="ant-dropdown-link">更多 <a-icon type="down" /></a> | |||
| <a-menu slot="overlay"> | |||
| <a-menu-item> | |||
| <a @click="handleDetail(record)">详情</a> | |||
| </a-menu-item> | |||
| <a-menu-item> | |||
| <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> | |||
| <a>删除</a> | |||
| </a-popconfirm> | |||
| </a-menu-item> | |||
| </a-menu> | |||
| </a-dropdown> | |||
| </span> | |||
| </a-table> | |||
| </div> | |||
| <han-hai-member-modal ref="modalForm" @ok="modalFormOk"></han-hai-member-modal> | |||
| </a-card> | |||
| </template> | |||
| <script> | |||
| import '@/assets/less/TableExpand.less' | |||
| import { mixinDevice } from '@/utils/mixin' | |||
| import { JeecgListMixin } from '@/mixins/JeecgListMixin' | |||
| import HanHaiMemberModal from './modules/HanHaiMemberModal' | |||
| import {filterMultiDictText} from '@/components/dict/JDictSelectUtil' | |||
| export default { | |||
| name: 'HanHaiMemberList', | |||
| mixins:[JeecgListMixin, mixinDevice], | |||
| components: { | |||
| HanHaiMemberModal | |||
| }, | |||
| data () { | |||
| return { | |||
| description: 'han_hai_member管理页面', | |||
| // 表头 | |||
| columns: [ | |||
| { | |||
| title: '#', | |||
| dataIndex: '', | |||
| key:'rowIndex', | |||
| width:60, | |||
| align:"center", | |||
| customRender:function (t,r,index) { | |||
| return parseInt(index)+1; | |||
| } | |||
| }, | |||
| { | |||
| title:'创建日期', | |||
| align:"center", | |||
| dataIndex: 'createTime' | |||
| }, | |||
| { | |||
| title:'昵称', | |||
| align:"center", | |||
| dataIndex: 'nickName' | |||
| }, | |||
| { | |||
| title:'用户头像', | |||
| align:"center", | |||
| dataIndex: 'headImage', | |||
| scopedSlots: {customRender: 'imgSlot'} | |||
| }, | |||
| { | |||
| title:'真实姓名', | |||
| align:"center", | |||
| dataIndex: 'name' | |||
| }, | |||
| { | |||
| title:'手机号码', | |||
| align:"center", | |||
| dataIndex: 'phone' | |||
| }, | |||
| { | |||
| title:'角色', | |||
| align:"center", | |||
| dataIndex: 'role_dictText' | |||
| }, | |||
| { | |||
| title:'是否冻结', | |||
| align:"center", | |||
| dataIndex: 'frozenFlag_dictText' | |||
| }, | |||
| { | |||
| title:'小程序标识', | |||
| align:"center", | |||
| dataIndex: 'appletOpenid' | |||
| }, | |||
| { | |||
| title:'余额', | |||
| align:"center", | |||
| dataIndex: 'price' | |||
| }, | |||
| { | |||
| title:'性别', | |||
| align:"center", | |||
| dataIndex: 'sex_dictText' | |||
| }, | |||
| { | |||
| title: '操作', | |||
| dataIndex: 'action', | |||
| align:"center", | |||
| fixed:"right", | |||
| width:147, | |||
| scopedSlots: { customRender: 'action' } | |||
| } | |||
| ], | |||
| url: { | |||
| list: "/hanHaiMember/hanHaiMember/list", | |||
| delete: "/hanHaiMember/hanHaiMember/delete", | |||
| deleteBatch: "/hanHaiMember/hanHaiMember/deleteBatch", | |||
| exportXlsUrl: "/hanHaiMember/hanHaiMember/exportXls", | |||
| importExcelUrl: "hanHaiMember/hanHaiMember/importExcel", | |||
| }, | |||
| dictOptions:{}, | |||
| superFieldList:[], | |||
| } | |||
| }, | |||
| created() { | |||
| this.getSuperFieldList(); | |||
| }, | |||
| computed: { | |||
| importExcelUrl: function(){ | |||
| return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; | |||
| }, | |||
| }, | |||
| methods: { | |||
| initDictConfig(){ | |||
| }, | |||
| getSuperFieldList(){ | |||
| let fieldList=[]; | |||
| fieldList.push({type:'datetime',value:'createTime',text:'创建日期'}) | |||
| fieldList.push({type:'string',value:'nickName',text:'昵称',dictCode:''}) | |||
| fieldList.push({type:'string',value:'headImage',text:'用户头像',dictCode:''}) | |||
| fieldList.push({type:'string',value:'name',text:'真实姓名',dictCode:''}) | |||
| fieldList.push({type:'string',value:'phone',text:'手机号码',dictCode:''}) | |||
| fieldList.push({type:'string',value:'role',text:'角色',dictCode:'user_role'}) | |||
| fieldList.push({type:'string',value:'frozenFlag',text:'是否冻结',dictCode:'is_disable'}) | |||
| fieldList.push({type:'string',value:'appletOpenid',text:'小程序标识',dictCode:''}) | |||
| fieldList.push({type:'BigDecimal',value:'price',text:'余额',dictCode:''}) | |||
| fieldList.push({type:'string',value:'sex',text:'性别',dictCode:'sex'}) | |||
| this.superFieldList = fieldList | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| <style scoped> | |||
| @import '~@assets/less/common.less'; | |||
| </style> | |||
| @ -0,0 +1,139 @@ | |||
| <template> | |||
| <a-spin :spinning="confirmLoading"> | |||
| <j-form-container :disabled="formDisabled"> | |||
| <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> | |||
| <a-row> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="昵称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="nickName"> | |||
| <a-input v-model="model.nickName" placeholder="请输入昵称" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="用户头像" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="headImage"> | |||
| <j-image-upload isMultiple v-model="model.headImage" ></j-image-upload> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="真实姓名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name"> | |||
| <a-input v-model="model.name" placeholder="请输入真实姓名" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="手机号码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="phone"> | |||
| <a-input v-model="model.phone" placeholder="请输入手机号码" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="角色" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="role"> | |||
| <j-dict-select-tag type="list" v-model="model.role" dictCode="user_role" placeholder="请选择角色" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="是否冻结" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="frozenFlag"> | |||
| <j-dict-select-tag type="list" v-model="model.frozenFlag" dictCode="is_disable" placeholder="请选择是否冻结" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="余额" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="price"> | |||
| <a-input-number v-model="model.price" placeholder="请输入余额" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="性别" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sex"> | |||
| <j-dict-select-tag type="list" v-model="model.sex" dictCode="sex" placeholder="请选择性别" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| </a-row> | |||
| </a-form-model> | |||
| </j-form-container> | |||
| </a-spin> | |||
| </template> | |||
| <script> | |||
| import { httpAction, getAction } from '@/api/manage' | |||
| import { validateDuplicateValue } from '@/utils/util' | |||
| export default { | |||
| name: 'HanHaiMemberForm', | |||
| components: { | |||
| }, | |||
| props: { | |||
| //表单禁用 | |||
| disabled: { | |||
| type: Boolean, | |||
| default: false, | |||
| required: false | |||
| } | |||
| }, | |||
| data () { | |||
| return { | |||
| model:{ | |||
| }, | |||
| labelCol: { | |||
| xs: { span: 24 }, | |||
| sm: { span: 5 }, | |||
| }, | |||
| wrapperCol: { | |||
| xs: { span: 24 }, | |||
| sm: { span: 16 }, | |||
| }, | |||
| confirmLoading: false, | |||
| validatorRules: { | |||
| }, | |||
| url: { | |||
| add: "/hanHaiMember/hanHaiMember/add", | |||
| edit: "/hanHaiMember/hanHaiMember/edit", | |||
| queryById: "/hanHaiMember/hanHaiMember/queryById" | |||
| } | |||
| } | |||
| }, | |||
| computed: { | |||
| formDisabled(){ | |||
| return this.disabled | |||
| }, | |||
| }, | |||
| created () { | |||
| //备份model原始值 | |||
| this.modelDefault = JSON.parse(JSON.stringify(this.model)); | |||
| }, | |||
| methods: { | |||
| add () { | |||
| this.edit(this.modelDefault); | |||
| }, | |||
| edit (record) { | |||
| this.model = Object.assign({}, record); | |||
| this.visible = true; | |||
| }, | |||
| submitForm () { | |||
| const that = this; | |||
| // 触发表单验证 | |||
| this.$refs.form.validate(valid => { | |||
| if (valid) { | |||
| that.confirmLoading = true; | |||
| let httpurl = ''; | |||
| let method = ''; | |||
| if(!this.model.id){ | |||
| httpurl+=this.url.add; | |||
| method = 'post'; | |||
| }else{ | |||
| httpurl+=this.url.edit; | |||
| method = 'put'; | |||
| } | |||
| httpAction(httpurl,this.model,method).then((res)=>{ | |||
| if(res.success){ | |||
| that.$message.success(res.message); | |||
| that.$emit('ok'); | |||
| }else{ | |||
| that.$message.warning(res.message); | |||
| } | |||
| }).finally(() => { | |||
| that.confirmLoading = false; | |||
| }) | |||
| } | |||
| }) | |||
| }, | |||
| } | |||
| } | |||
| </script> | |||
| @ -0,0 +1,84 @@ | |||
| <template> | |||
| <a-drawer | |||
| :title="title" | |||
| :width="width" | |||
| placement="right" | |||
| :closable="false" | |||
| @close="close" | |||
| destroyOnClose | |||
| :visible="visible"> | |||
| <han-hai-member-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></han-hai-member-form> | |||
| <div class="drawer-footer"> | |||
| <a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button> | |||
| <a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;">提交</a-button> | |||
| </div> | |||
| </a-drawer> | |||
| </template> | |||
| <script> | |||
| import HanHaiMemberForm from './HanHaiMemberForm' | |||
| export default { | |||
| name: 'HanHaiMemberModal', | |||
| components: { | |||
| HanHaiMemberForm | |||
| }, | |||
| data () { | |||
| return { | |||
| title:"操作", | |||
| width:800, | |||
| visible: false, | |||
| disableSubmit: false | |||
| } | |||
| }, | |||
| methods: { | |||
| add () { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.add(); | |||
| }) | |||
| }, | |||
| edit (record) { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.edit(record); | |||
| }); | |||
| }, | |||
| close () { | |||
| this.$emit('close'); | |||
| this.visible = false; | |||
| }, | |||
| submitCallback(){ | |||
| this.$emit('ok'); | |||
| this.visible = false; | |||
| }, | |||
| handleOk () { | |||
| this.$refs.realForm.submitForm(); | |||
| }, | |||
| handleCancel () { | |||
| this.close() | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="less" scoped> | |||
| /** Button按钮间距 */ | |||
| .ant-btn { | |||
| margin-left: 30px; | |||
| margin-bottom: 30px; | |||
| float: right; | |||
| } | |||
| .drawer-footer{ | |||
| position: absolute; | |||
| bottom: -8px; | |||
| width: 100%; | |||
| border-top: 1px solid #e8e8e8; | |||
| padding: 10px 16px; | |||
| text-align: right; | |||
| left: 0; | |||
| background: #fff; | |||
| border-radius: 0 0 2px 2px; | |||
| } | |||
| </style> | |||
| @ -0,0 +1,60 @@ | |||
| <template> | |||
| <j-modal | |||
| :title="title" | |||
| :width="width" | |||
| :visible="visible" | |||
| switchFullscreen | |||
| @ok="handleOk" | |||
| :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" | |||
| @cancel="handleCancel" | |||
| cancelText="关闭"> | |||
| <han-hai-member-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></han-hai-member-form> | |||
| </j-modal> | |||
| </template> | |||
| <script> | |||
| import HanHaiMemberForm from './HanHaiMemberForm' | |||
| export default { | |||
| name: 'HanHaiMemberModal', | |||
| components: { | |||
| HanHaiMemberForm | |||
| }, | |||
| data () { | |||
| return { | |||
| title:'', | |||
| width:800, | |||
| visible: false, | |||
| disableSubmit: false | |||
| } | |||
| }, | |||
| methods: { | |||
| add () { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.add(); | |||
| }) | |||
| }, | |||
| edit (record) { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.edit(record); | |||
| }) | |||
| }, | |||
| close () { | |||
| this.$emit('close'); | |||
| this.visible = false; | |||
| }, | |||
| handleOk () { | |||
| this.$refs.realForm.submitForm(); | |||
| }, | |||
| submitCallback(){ | |||
| this.$emit('ok'); | |||
| this.visible = false; | |||
| }, | |||
| handleCancel () { | |||
| this.close() | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @ -0,0 +1,379 @@ | |||
| <template> | |||
| <a-card :bordered="false"> | |||
| <!-- 查询区域 --> | |||
| <div class="table-page-search-wrapper"> | |||
| <a-form layout="inline" @keyup.enter.native="searchQuery"> | |||
| <a-row :gutter="24"> | |||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||
| <a-form-item label="订单id"> | |||
| <a-input placeholder="请输入订单id" v-model="queryParam.id"></a-input> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||
| <a-form-item label="老板名"> | |||
| <a-input placeholder="请输入老板名" v-model="queryParam.userName"></a-input> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||
| <a-form-item label="工人名"> | |||
| <a-input placeholder="请输入工人名" v-model="queryParam.workName"></a-input> | |||
| </a-form-item> | |||
| </a-col> | |||
| <template v-if="toggleSearchStatus"> | |||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||
| <a-form-item label="工人联系方式"> | |||
| <a-input placeholder="请输入工人联系方式" v-model="queryParam.phone"></a-input> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||
| <a-form-item label="招聘方联系方式"> | |||
| <a-input placeholder="请输入招聘方联系方式" v-model="queryParam.bossPhone"></a-input> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||
| <a-form-item label="订单状态 0待聘用 1 已接单 2 进行中 3试工完成 4 企业确认 5已支付 6已完成 7已取消"> | |||
| <j-dict-select-tag placeholder="请选择订单状态 0待聘用 1 已接单 2 进行中 3试工完成 4 企业确认 5已支付 6已完成 7已取消" v-model="queryParam.orderStatus" dictCode="order_status"/> | |||
| </a-form-item> | |||
| </a-col> | |||
| </template> | |||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||
| <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> | |||
| <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> | |||
| <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> | |||
| <a @click="handleToggleSearch" style="margin-left: 8px"> | |||
| {{ toggleSearchStatus ? '收起' : '展开' }} | |||
| <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> | |||
| </a> | |||
| </span> | |||
| </a-col> | |||
| </a-row> | |||
| </a-form> | |||
| </div> | |||
| <!-- 查询区域-END --> | |||
| <!-- 操作按钮区域 --> | |||
| <div class="table-operator"> | |||
| <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> | |||
| <a-button type="primary" icon="download" @click="handleExportXls('tb_order')">导出</a-button> | |||
| <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> | |||
| <a-button type="primary" icon="import">导入</a-button> | |||
| </a-upload> | |||
| <!-- 高级查询区域 --> | |||
| <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> | |||
| <a-dropdown v-if="selectedRowKeys.length > 0"> | |||
| <a-menu slot="overlay"> | |||
| <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item> | |||
| </a-menu> | |||
| <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button> | |||
| </a-dropdown> | |||
| </div> | |||
| <!-- table区域-begin --> | |||
| <div> | |||
| <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> | |||
| <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 | |||
| <a style="margin-left: 24px" @click="onClearSelected">清空</a> | |||
| </div> | |||
| <a-table | |||
| ref="table" | |||
| size="middle" | |||
| :scroll="{x:true}" | |||
| bordered | |||
| rowKey="id" | |||
| :columns="columns" | |||
| :dataSource="dataSource" | |||
| :pagination="ipagination" | |||
| :loading="loading" | |||
| :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" | |||
| class="j-table-force-nowrap" | |||
| @change="handleTableChange"> | |||
| <template slot="htmlSlot" slot-scope="text"> | |||
| <div v-html="text"></div> | |||
| </template> | |||
| <template slot="imgSlot" slot-scope="text,record"> | |||
| <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> | |||
| <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> | |||
| </template> | |||
| <template slot="fileSlot" slot-scope="text"> | |||
| <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> | |||
| <a-button | |||
| v-else | |||
| :ghost="true" | |||
| type="primary" | |||
| icon="download" | |||
| size="small" | |||
| @click="downloadFile(text)"> | |||
| 下载 | |||
| </a-button> | |||
| </template> | |||
| <span slot="action" slot-scope="text, record"> | |||
| <a @click="handleEdit(record)">编辑</a> | |||
| <a-divider type="vertical" /> | |||
| <a-dropdown> | |||
| <a class="ant-dropdown-link">更多 <a-icon type="down" /></a> | |||
| <a-menu slot="overlay"> | |||
| <a-menu-item> | |||
| <a @click="handleDetail(record)">详情</a> | |||
| </a-menu-item> | |||
| <a-menu-item> | |||
| <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> | |||
| <a>删除</a> | |||
| </a-popconfirm> | |||
| </a-menu-item> | |||
| </a-menu> | |||
| </a-dropdown> | |||
| </span> | |||
| </a-table> | |||
| </div> | |||
| <tb-order-modal ref="modalForm" @ok="modalFormOk"></tb-order-modal> | |||
| </a-card> | |||
| </template> | |||
| <script> | |||
| import '@/assets/less/TableExpand.less' | |||
| import { mixinDevice } from '@/utils/mixin' | |||
| import { JeecgListMixin } from '@/mixins/JeecgListMixin' | |||
| import TbOrderModal from './modules/TbOrderModal' | |||
| import {filterMultiDictText} from '@/components/dict/JDictSelectUtil' | |||
| export default { | |||
| name: 'TbOrderList', | |||
| mixins:[JeecgListMixin, mixinDevice], | |||
| components: { | |||
| TbOrderModal | |||
| }, | |||
| data () { | |||
| return { | |||
| description: 'tb_order管理页面', | |||
| // 表头 | |||
| columns: [ | |||
| { | |||
| title: '#', | |||
| dataIndex: '', | |||
| key:'rowIndex', | |||
| width:60, | |||
| align:"center", | |||
| customRender:function (t,r,index) { | |||
| return parseInt(index)+1; | |||
| } | |||
| }, | |||
| { | |||
| title:'订单id', | |||
| align:"center", | |||
| dataIndex: 'id' | |||
| }, | |||
| { | |||
| title:'老板名', | |||
| align:"center", | |||
| dataIndex: 'userName' | |||
| }, | |||
| { | |||
| title:'工人名', | |||
| align:"center", | |||
| dataIndex: 'workName' | |||
| }, | |||
| { | |||
| title:'工作标题', | |||
| align:"center", | |||
| dataIndex: 'title' | |||
| }, | |||
| { | |||
| title:'公司名称', | |||
| align:"center", | |||
| dataIndex: 'companyName' | |||
| }, | |||
| { | |||
| title:'工人出发地址', | |||
| align:"center", | |||
| dataIndex: 'workerAddress' | |||
| }, | |||
| { | |||
| title:'出行方式 0出租车 1 网约车 2 公交地铁 3无', | |||
| align:"center", | |||
| dataIndex: 'travelType_dictText' | |||
| }, | |||
| { | |||
| title:'上班地址', | |||
| align:"center", | |||
| dataIndex: 'workAddress' | |||
| }, | |||
| { | |||
| title:'行业/工种', | |||
| align:"center", | |||
| dataIndex: 'industryName' | |||
| }, | |||
| { | |||
| title:'图片上传', | |||
| align:"center", | |||
| dataIndex: 'workPic', | |||
| scopedSlots: {customRender: 'imgSlot'} | |||
| }, | |||
| { | |||
| title:'工人联系方式', | |||
| align:"center", | |||
| dataIndex: 'phone' | |||
| }, | |||
| { | |||
| title:'招聘方联系方式', | |||
| align:"center", | |||
| dataIndex: 'bossPhone' | |||
| }, | |||
| { | |||
| title:'年龄', | |||
| align:"center", | |||
| dataIndex: 'age' | |||
| }, | |||
| { | |||
| title:'性别', | |||
| align:"center", | |||
| dataIndex: 'gender_dictText' | |||
| }, | |||
| { | |||
| title:'时间范围', | |||
| align:"center", | |||
| dataIndex: 'startTime' | |||
| }, | |||
| { | |||
| title:'时间范围', | |||
| align:"center", | |||
| dataIndex: 'endTime' | |||
| }, | |||
| { | |||
| title:'支付时间', | |||
| align:"center", | |||
| dataIndex: 'payTime' | |||
| }, | |||
| { | |||
| title:'工作时长', | |||
| align:"center", | |||
| dataIndex: 'workTime' | |||
| }, | |||
| { | |||
| title:'订单状态 0待聘用 1 已接单 2 进行中 3试工完成 4 企业确认 5已支付 6已完成 7已取消', | |||
| align:"center", | |||
| dataIndex: 'orderStatus_dictText' | |||
| }, | |||
| { | |||
| title:'结算方式 0提前支付 1 试用后支付', | |||
| align:"center", | |||
| dataIndex: 'payType_dictText' | |||
| }, | |||
| { | |||
| title:'付款金额(元)、', | |||
| align:"center", | |||
| dataIndex: 'payMoney' | |||
| }, | |||
| { | |||
| title:'支付方式 0微信支付 1 余额支付', | |||
| align:"center", | |||
| dataIndex: 'moneyType_dictText' | |||
| }, | |||
| { | |||
| title:'保险费(元)、', | |||
| align:"center", | |||
| dataIndex: 'premium' | |||
| }, | |||
| { | |||
| title:'交通费用金额(元)、', | |||
| align:"center", | |||
| dataIndex: 'travelMoney' | |||
| }, | |||
| { | |||
| title:'试工费用金额(元)、', | |||
| align:"center", | |||
| dataIndex: 'workMoney' | |||
| }, | |||
| { | |||
| title:'总金额(元)、', | |||
| align:"center", | |||
| dataIndex: 'amount' | |||
| }, | |||
| { | |||
| title:'平台手续费(元)、', | |||
| align:"center", | |||
| dataIndex: 'rateMoney' | |||
| }, | |||
| { | |||
| title:'平台手续费率)、', | |||
| align:"center", | |||
| dataIndex: 'rate' | |||
| }, | |||
| { | |||
| title: '操作', | |||
| dataIndex: 'action', | |||
| align:"center", | |||
| fixed:"right", | |||
| width:147, | |||
| scopedSlots: { customRender: 'action' } | |||
| } | |||
| ], | |||
| url: { | |||
| list: "/tbOrder/tbOrder/list", | |||
| delete: "/tbOrder/tbOrder/delete", | |||
| deleteBatch: "/tbOrder/tbOrder/deleteBatch", | |||
| exportXlsUrl: "/tbOrder/tbOrder/exportXls", | |||
| importExcelUrl: "tbOrder/tbOrder/importExcel", | |||
| }, | |||
| dictOptions:{}, | |||
| superFieldList:[], | |||
| } | |||
| }, | |||
| created() { | |||
| this.getSuperFieldList(); | |||
| }, | |||
| computed: { | |||
| importExcelUrl: function(){ | |||
| return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; | |||
| }, | |||
| }, | |||
| methods: { | |||
| initDictConfig(){ | |||
| }, | |||
| getSuperFieldList(){ | |||
| let fieldList=[]; | |||
| fieldList.push({type:'string',value:'userName',text:'老板名',dictCode:''}) | |||
| fieldList.push({type:'string',value:'workName',text:'工人名',dictCode:''}) | |||
| fieldList.push({type:'string',value:'title',text:'工作标题',dictCode:''}) | |||
| fieldList.push({type:'string',value:'companyName',text:'公司名称',dictCode:''}) | |||
| fieldList.push({type:'string',value:'workerAddress',text:'工人出发地址',dictCode:''}) | |||
| fieldList.push({type:'int',value:'travelType',text:'出行方式 0出租车 1 网约车 2 公交地铁 3无',dictCode:'travel_type'}) | |||
| fieldList.push({type:'string',value:'workAddress',text:'上班地址',dictCode:''}) | |||
| fieldList.push({type:'string',value:'industryName',text:'行业/工种',dictCode:''}) | |||
| fieldList.push({type:'Text',value:'detail',text:'工人个人简介',dictCode:''}) | |||
| fieldList.push({type:'Text',value:'workDetail',text:'工作内容',dictCode:''}) | |||
| fieldList.push({type:'Text',value:'workPic',text:'图片上传',dictCode:''}) | |||
| fieldList.push({type:'string',value:'phone',text:'工人联系方式',dictCode:''}) | |||
| fieldList.push({type:'string',value:'bossPhone',text:'招聘方联系方式',dictCode:''}) | |||
| fieldList.push({type:'int',value:'age',text:'年龄',dictCode:''}) | |||
| fieldList.push({type:'int',value:'gender',text:'性别',dictCode:'sex'}) | |||
| fieldList.push({type:'datetime',value:'startTime',text:'时间范围'}) | |||
| fieldList.push({type:'datetime',value:'endTime',text:'时间范围'}) | |||
| fieldList.push({type:'datetime',value:'payTime',text:'支付时间'}) | |||
| fieldList.push({type:'string',value:'workTime',text:'工作时长',dictCode:''}) | |||
| fieldList.push({type:'int',value:'orderStatus',text:'订单状态 0待聘用 1 已接单 2 进行中 3试工完成 4 企业确认 5已支付 6已完成 7已取消',dictCode:'order_status'}) | |||
| fieldList.push({type:'int',value:'payType',text:'结算方式 0提前支付 1 试用后支付',dictCode:'pay_type'}) | |||
| fieldList.push({type:'BigDecimal',value:'payMoney',text:'付款金额(元)、',dictCode:''}) | |||
| fieldList.push({type:'int',value:'moneyType',text:'支付方式 0微信支付 1 余额支付',dictCode:'money_type'}) | |||
| fieldList.push({type:'BigDecimal',value:'premium',text:'保险费(元)、',dictCode:''}) | |||
| fieldList.push({type:'BigDecimal',value:'travelMoney',text:'交通费用金额(元)、',dictCode:''}) | |||
| fieldList.push({type:'BigDecimal',value:'workMoney',text:'试工费用金额(元)、',dictCode:''}) | |||
| fieldList.push({type:'BigDecimal',value:'amount',text:'总金额(元)、',dictCode:''}) | |||
| fieldList.push({type:'BigDecimal',value:'rateMoney',text:'平台手续费(元)、',dictCode:''}) | |||
| fieldList.push({type:'BigDecimal',value:'rate',text:'平台手续费率)、',dictCode:''}) | |||
| this.superFieldList = fieldList | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| <style scoped> | |||
| @import '~@assets/less/common.less'; | |||
| </style> | |||
| @ -0,0 +1,265 @@ | |||
| <template> | |||
| <a-spin :spinning="confirmLoading"> | |||
| <j-form-container :disabled="formDisabled"> | |||
| <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> | |||
| <a-row> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="老板名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userName"> | |||
| <a-input v-model="model.userName" placeholder="请输入老板名" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="工人名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workName"> | |||
| <a-input v-model="model.workName" placeholder="请输入工人名" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="工作标题" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="title"> | |||
| <a-input v-model="model.title" placeholder="请输入工作标题" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="公司名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="companyName"> | |||
| <a-input v-model="model.companyName" placeholder="请输入公司名称" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="工人出发地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workerAddress"> | |||
| <a-input v-model="model.workerAddress" placeholder="请输入工人出发地址" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="出行方式 0出租车 1 网约车 2 公交地铁 3无" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="travelType"> | |||
| <j-dict-select-tag type="list" v-model="model.travelType" dictCode="travel_type" placeholder="请选择出行方式 0出租车 1 网约车 2 公交地铁 3无" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="上班地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workAddress"> | |||
| <a-input v-model="model.workAddress" placeholder="请输入上班地址" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="行业/工种" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="industryName"> | |||
| <a-input v-model="model.industryName" placeholder="请输入行业/工种" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="工人个人简介" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="detail"> | |||
| <j-editor v-model="model.detail" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="工作内容" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workDetail"> | |||
| <j-editor v-model="model.workDetail" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="图片上传" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workPic"> | |||
| <j-image-upload isMultiple v-model="model.workPic" ></j-image-upload> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="工人联系方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="phone"> | |||
| <a-input v-model="model.phone" placeholder="请输入工人联系方式" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="招聘方联系方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="bossPhone"> | |||
| <a-input v-model="model.bossPhone" placeholder="请输入招聘方联系方式" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="年龄" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="age"> | |||
| <a-input-number v-model="model.age" placeholder="请输入年龄" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="性别" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="gender"> | |||
| <j-dict-select-tag type="list" v-model="model.gender" dictCode="sex" placeholder="请选择性别" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="时间范围" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="startTime"> | |||
| <j-date placeholder="请选择时间范围" v-model="model.startTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="时间范围" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="endTime"> | |||
| <j-date placeholder="请选择时间范围" v-model="model.endTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="支付时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="payTime"> | |||
| <j-date placeholder="请选择支付时间" v-model="model.payTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="工作时长" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workTime"> | |||
| <a-input v-model="model.workTime" placeholder="请输入工作时长" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="订单状态 0待聘用 1 已接单 2 进行中 3试工完成 4 企业确认 5已支付 6已完成 7已取消" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderStatus"> | |||
| <j-dict-select-tag type="list" v-model="model.orderStatus" dictCode="order_status" placeholder="请选择订单状态 0待聘用 1 已接单 2 进行中 3试工完成 4 企业确认 5已支付 6已完成 7已取消" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="结算方式 0提前支付 1 试用后支付" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="payType"> | |||
| <j-dict-select-tag type="list" v-model="model.payType" dictCode="pay_type" placeholder="请选择结算方式 0提前支付 1 试用后支付" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="付款金额(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="payMoney"> | |||
| <a-input-number v-model="model.payMoney" placeholder="请输入付款金额(元)、" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="支付方式 0微信支付 1 余额支付" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="moneyType"> | |||
| <j-dict-select-tag type="list" v-model="model.moneyType" dictCode="money_type" placeholder="请选择支付方式 0微信支付 1 余额支付" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="保险费(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="premium"> | |||
| <a-input-number v-model="model.premium" placeholder="请输入保险费(元)、" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="交通费用金额(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="travelMoney"> | |||
| <a-input-number v-model="model.travelMoney" placeholder="请输入交通费用金额(元)、" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="试工费用金额(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workMoney"> | |||
| <a-input-number v-model="model.workMoney" placeholder="请输入试工费用金额(元)、" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="总金额(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="amount"> | |||
| <a-input-number v-model="model.amount" placeholder="请输入总金额(元)、" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="平台手续费(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="rateMoney"> | |||
| <a-input-number v-model="model.rateMoney" placeholder="请输入平台手续费(元)、" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="平台手续费率)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="rate"> | |||
| <a-input-number v-model="model.rate" placeholder="请输入平台手续费率)、" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| </a-row> | |||
| </a-form-model> | |||
| </j-form-container> | |||
| </a-spin> | |||
| </template> | |||
| <script> | |||
| import { httpAction, getAction } from '@/api/manage' | |||
| import { validateDuplicateValue } from '@/utils/util' | |||
| export default { | |||
| name: 'TbOrderForm', | |||
| components: { | |||
| }, | |||
| props: { | |||
| //表单禁用 | |||
| disabled: { | |||
| type: Boolean, | |||
| default: false, | |||
| required: false | |||
| } | |||
| }, | |||
| data () { | |||
| return { | |||
| model:{ | |||
| }, | |||
| labelCol: { | |||
| xs: { span: 24 }, | |||
| sm: { span: 5 }, | |||
| }, | |||
| wrapperCol: { | |||
| xs: { span: 24 }, | |||
| sm: { span: 16 }, | |||
| }, | |||
| confirmLoading: false, | |||
| validatorRules: { | |||
| payMoney: [ | |||
| { required: true, message: '请输入付款金额(元)、!'}, | |||
| ], | |||
| premium: [ | |||
| { required: true, message: '请输入保险费(元)、!'}, | |||
| ], | |||
| travelMoney: [ | |||
| { required: true, message: '请输入交通费用金额(元)、!'}, | |||
| ], | |||
| workMoney: [ | |||
| { required: true, message: '请输入试工费用金额(元)、!'}, | |||
| ], | |||
| amount: [ | |||
| { required: true, message: '请输入总金额(元)、!'}, | |||
| ], | |||
| rateMoney: [ | |||
| { required: true, message: '请输入平台手续费(元)、!'}, | |||
| ], | |||
| rate: [ | |||
| { required: true, message: '请输入平台手续费率)、!'}, | |||
| ], | |||
| }, | |||
| url: { | |||
| add: "/tbOrder/tbOrder/add", | |||
| edit: "/tbOrder/tbOrder/edit", | |||
| queryById: "/tbOrder/tbOrder/queryById" | |||
| } | |||
| } | |||
| }, | |||
| computed: { | |||
| formDisabled(){ | |||
| return this.disabled | |||
| }, | |||
| }, | |||
| created () { | |||
| //备份model原始值 | |||
| this.modelDefault = JSON.parse(JSON.stringify(this.model)); | |||
| }, | |||
| methods: { | |||
| add () { | |||
| this.edit(this.modelDefault); | |||
| }, | |||
| edit (record) { | |||
| this.model = Object.assign({}, record); | |||
| this.visible = true; | |||
| }, | |||
| submitForm () { | |||
| const that = this; | |||
| // 触发表单验证 | |||
| this.$refs.form.validate(valid => { | |||
| if (valid) { | |||
| that.confirmLoading = true; | |||
| let httpurl = ''; | |||
| let method = ''; | |||
| if(!this.model.id){ | |||
| httpurl+=this.url.add; | |||
| method = 'post'; | |||
| }else{ | |||
| httpurl+=this.url.edit; | |||
| method = 'put'; | |||
| } | |||
| httpAction(httpurl,this.model,method).then((res)=>{ | |||
| if(res.success){ | |||
| that.$message.success(res.message); | |||
| that.$emit('ok'); | |||
| }else{ | |||
| that.$message.warning(res.message); | |||
| } | |||
| }).finally(() => { | |||
| that.confirmLoading = false; | |||
| }) | |||
| } | |||
| }) | |||
| }, | |||
| } | |||
| } | |||
| </script> | |||
| @ -0,0 +1,84 @@ | |||
| <template> | |||
| <a-drawer | |||
| :title="title" | |||
| :width="width" | |||
| placement="right" | |||
| :closable="false" | |||
| @close="close" | |||
| destroyOnClose | |||
| :visible="visible"> | |||
| <tb-order-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></tb-order-form> | |||
| <div class="drawer-footer"> | |||
| <a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button> | |||
| <a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;">提交</a-button> | |||
| </div> | |||
| </a-drawer> | |||
| </template> | |||
| <script> | |||
| import TbOrderForm from './TbOrderForm' | |||
| export default { | |||
| name: 'TbOrderModal', | |||
| components: { | |||
| TbOrderForm | |||
| }, | |||
| data () { | |||
| return { | |||
| title:"操作", | |||
| width:800, | |||
| visible: false, | |||
| disableSubmit: false | |||
| } | |||
| }, | |||
| methods: { | |||
| add () { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.add(); | |||
| }) | |||
| }, | |||
| edit (record) { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.edit(record); | |||
| }); | |||
| }, | |||
| close () { | |||
| this.$emit('close'); | |||
| this.visible = false; | |||
| }, | |||
| submitCallback(){ | |||
| this.$emit('ok'); | |||
| this.visible = false; | |||
| }, | |||
| handleOk () { | |||
| this.$refs.realForm.submitForm(); | |||
| }, | |||
| handleCancel () { | |||
| this.close() | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="less" scoped> | |||
| /** Button按钮间距 */ | |||
| .ant-btn { | |||
| margin-left: 30px; | |||
| margin-bottom: 30px; | |||
| float: right; | |||
| } | |||
| .drawer-footer{ | |||
| position: absolute; | |||
| bottom: -8px; | |||
| width: 100%; | |||
| border-top: 1px solid #e8e8e8; | |||
| padding: 10px 16px; | |||
| text-align: right; | |||
| left: 0; | |||
| background: #fff; | |||
| border-radius: 0 0 2px 2px; | |||
| } | |||
| </style> | |||
| @ -0,0 +1,60 @@ | |||
| <template> | |||
| <j-modal | |||
| :title="title" | |||
| :width="width" | |||
| :visible="visible" | |||
| switchFullscreen | |||
| @ok="handleOk" | |||
| :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" | |||
| @cancel="handleCancel" | |||
| cancelText="关闭"> | |||
| <tb-order-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></tb-order-form> | |||
| </j-modal> | |||
| </template> | |||
| <script> | |||
| import TbOrderForm from './TbOrderForm' | |||
| export default { | |||
| name: 'TbOrderModal', | |||
| components: { | |||
| TbOrderForm | |||
| }, | |||
| data () { | |||
| return { | |||
| title:'', | |||
| width:800, | |||
| visible: false, | |||
| disableSubmit: false | |||
| } | |||
| }, | |||
| methods: { | |||
| add () { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.add(); | |||
| }) | |||
| }, | |||
| edit (record) { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.edit(record); | |||
| }) | |||
| }, | |||
| close () { | |||
| this.$emit('close'); | |||
| this.visible = false; | |||
| }, | |||
| handleOk () { | |||
| this.$refs.realForm.submitForm(); | |||
| }, | |||
| submitCallback(){ | |||
| this.$emit('ok'); | |||
| this.visible = false; | |||
| }, | |||
| handleCancel () { | |||
| this.close() | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @ -0,0 +1,190 @@ | |||
| <template> | |||
| <a-card :bordered="false"> | |||
| <!-- 查询区域 --> | |||
| <div class="table-page-search-wrapper"> | |||
| <a-form layout="inline" @keyup.enter.native="searchQuery"> | |||
| <a-row :gutter="24"> | |||
| </a-row> | |||
| </a-form> | |||
| </div> | |||
| <!-- 查询区域-END --> | |||
| <!-- 操作按钮区域 --> | |||
| <div class="table-operator"> | |||
| <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> | |||
| <a-button type="primary" icon="download" @click="handleExportXls('保险费账单表')">导出</a-button> | |||
| <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> | |||
| <a-button type="primary" icon="import">导入</a-button> | |||
| </a-upload> | |||
| <!-- 高级查询区域 --> | |||
| <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> | |||
| <a-dropdown v-if="selectedRowKeys.length > 0"> | |||
| <a-menu slot="overlay"> | |||
| <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item> | |||
| </a-menu> | |||
| <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button> | |||
| </a-dropdown> | |||
| </div> | |||
| <!-- table区域-begin --> | |||
| <div> | |||
| <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> | |||
| <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 | |||
| <a style="margin-left: 24px" @click="onClearSelected">清空</a> | |||
| </div> | |||
| <a-table | |||
| ref="table" | |||
| size="middle" | |||
| :scroll="{x:true}" | |||
| bordered | |||
| rowKey="id" | |||
| :columns="columns" | |||
| :dataSource="dataSource" | |||
| :pagination="ipagination" | |||
| :loading="loading" | |||
| :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" | |||
| class="j-table-force-nowrap" | |||
| @change="handleTableChange"> | |||
| <template slot="htmlSlot" slot-scope="text"> | |||
| <div v-html="text"></div> | |||
| </template> | |||
| <template slot="imgSlot" slot-scope="text,record"> | |||
| <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> | |||
| <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> | |||
| </template> | |||
| <template slot="fileSlot" slot-scope="text"> | |||
| <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> | |||
| <a-button | |||
| v-else | |||
| :ghost="true" | |||
| type="primary" | |||
| icon="download" | |||
| size="small" | |||
| @click="downloadFile(text)"> | |||
| 下载 | |||
| </a-button> | |||
| </template> | |||
| <span slot="action" slot-scope="text, record"> | |||
| <a @click="handleEdit(record)">编辑</a> | |||
| <a-divider type="vertical" /> | |||
| <a-dropdown> | |||
| <a class="ant-dropdown-link">更多 <a-icon type="down" /></a> | |||
| <a-menu slot="overlay"> | |||
| <a-menu-item> | |||
| <a @click="handleDetail(record)">详情</a> | |||
| </a-menu-item> | |||
| <a-menu-item> | |||
| <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> | |||
| <a>删除</a> | |||
| </a-popconfirm> | |||
| </a-menu-item> | |||
| </a-menu> | |||
| </a-dropdown> | |||
| </span> | |||
| </a-table> | |||
| </div> | |||
| <tb-premium-modal ref="modalForm" @ok="modalFormOk"></tb-premium-modal> | |||
| </a-card> | |||
| </template> | |||
| <script> | |||
| import '@/assets/less/TableExpand.less' | |||
| import { mixinDevice } from '@/utils/mixin' | |||
| import { JeecgListMixin } from '@/mixins/JeecgListMixin' | |||
| import TbPremiumModal from './modules/TbPremiumModal' | |||
| import {filterMultiDictText} from '@/components/dict/JDictSelectUtil' | |||
| export default { | |||
| name: 'TbPremiumList', | |||
| mixins:[JeecgListMixin, mixinDevice], | |||
| components: { | |||
| TbPremiumModal | |||
| }, | |||
| data () { | |||
| return { | |||
| description: '保险费账单表管理页面', | |||
| // 表头 | |||
| columns: [ | |||
| { | |||
| title: '#', | |||
| dataIndex: '', | |||
| key:'rowIndex', | |||
| width:60, | |||
| align:"center", | |||
| customRender:function (t,r,index) { | |||
| return parseInt(index)+1; | |||
| } | |||
| }, | |||
| { | |||
| title:'订单id', | |||
| align:"center", | |||
| dataIndex: 'orderId' | |||
| }, | |||
| { | |||
| title:'保险费(元)、', | |||
| align:"center", | |||
| dataIndex: 'premium' | |||
| }, | |||
| { | |||
| title:'支付方式 0微信支付 1 余额支付', | |||
| align:"center", | |||
| dataIndex: 'moneyType_dictText' | |||
| }, | |||
| { | |||
| title:'支付时间', | |||
| align:"center", | |||
| dataIndex: 'payTime' | |||
| }, | |||
| { | |||
| title: '操作', | |||
| dataIndex: 'action', | |||
| align:"center", | |||
| fixed:"right", | |||
| width:147, | |||
| scopedSlots: { customRender: 'action' } | |||
| } | |||
| ], | |||
| url: { | |||
| list: "/tbPremium/tbPremium/list", | |||
| delete: "/tbPremium/tbPremium/delete", | |||
| deleteBatch: "/tbPremium/tbPremium/deleteBatch", | |||
| exportXlsUrl: "/tbPremium/tbPremium/exportXls", | |||
| importExcelUrl: "tbPremium/tbPremium/importExcel", | |||
| }, | |||
| dictOptions:{}, | |||
| superFieldList:[], | |||
| } | |||
| }, | |||
| created() { | |||
| this.getSuperFieldList(); | |||
| }, | |||
| computed: { | |||
| importExcelUrl: function(){ | |||
| return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; | |||
| }, | |||
| }, | |||
| methods: { | |||
| initDictConfig(){ | |||
| }, | |||
| getSuperFieldList(){ | |||
| let fieldList=[]; | |||
| fieldList.push({type:'string',value:'orderId',text:'订单id',dictCode:''}) | |||
| fieldList.push({type:'BigDecimal',value:'premium',text:'保险费(元)、',dictCode:''}) | |||
| fieldList.push({type:'int',value:'moneyType',text:'支付方式 0微信支付 1 余额支付',dictCode:'money_type'}) | |||
| fieldList.push({type:'datetime',value:'payTime',text:'支付时间'}) | |||
| this.superFieldList = fieldList | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| <style scoped> | |||
| @import '~@assets/less/common.less'; | |||
| </style> | |||
| @ -0,0 +1,122 @@ | |||
| <template> | |||
| <a-spin :spinning="confirmLoading"> | |||
| <j-form-container :disabled="formDisabled"> | |||
| <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> | |||
| <a-row> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="订单id" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderId"> | |||
| <a-input v-model="model.orderId" placeholder="请输入订单id" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="保险费(元)、" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="premium"> | |||
| <a-input-number v-model="model.premium" placeholder="请输入保险费(元)、" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="支付方式 0微信支付 1 余额支付" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="moneyType"> | |||
| <j-dict-select-tag type="list" v-model="model.moneyType" dictCode="money_type" placeholder="请选择支付方式 0微信支付 1 余额支付" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="支付时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="payTime"> | |||
| <j-date placeholder="请选择支付时间" v-model="model.payTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| </a-row> | |||
| </a-form-model> | |||
| </j-form-container> | |||
| </a-spin> | |||
| </template> | |||
| <script> | |||
| import { httpAction, getAction } from '@/api/manage' | |||
| import { validateDuplicateValue } from '@/utils/util' | |||
| export default { | |||
| name: 'TbPremiumForm', | |||
| components: { | |||
| }, | |||
| props: { | |||
| //表单禁用 | |||
| disabled: { | |||
| type: Boolean, | |||
| default: false, | |||
| required: false | |||
| } | |||
| }, | |||
| data () { | |||
| return { | |||
| model:{ | |||
| }, | |||
| labelCol: { | |||
| xs: { span: 24 }, | |||
| sm: { span: 5 }, | |||
| }, | |||
| wrapperCol: { | |||
| xs: { span: 24 }, | |||
| sm: { span: 16 }, | |||
| }, | |||
| confirmLoading: false, | |||
| validatorRules: { | |||
| premium: [ | |||
| { required: true, message: '请输入保险费(元)、!'}, | |||
| ], | |||
| }, | |||
| url: { | |||
| add: "/tbPremium/tbPremium/add", | |||
| edit: "/tbPremium/tbPremium/edit", | |||
| queryById: "/tbPremium/tbPremium/queryById" | |||
| } | |||
| } | |||
| }, | |||
| computed: { | |||
| formDisabled(){ | |||
| return this.disabled | |||
| }, | |||
| }, | |||
| created () { | |||
| //备份model原始值 | |||
| this.modelDefault = JSON.parse(JSON.stringify(this.model)); | |||
| }, | |||
| methods: { | |||
| add () { | |||
| this.edit(this.modelDefault); | |||
| }, | |||
| edit (record) { | |||
| this.model = Object.assign({}, record); | |||
| this.visible = true; | |||
| }, | |||
| submitForm () { | |||
| const that = this; | |||
| // 触发表单验证 | |||
| this.$refs.form.validate(valid => { | |||
| if (valid) { | |||
| that.confirmLoading = true; | |||
| let httpurl = ''; | |||
| let method = ''; | |||
| if(!this.model.id){ | |||
| httpurl+=this.url.add; | |||
| method = 'post'; | |||
| }else{ | |||
| httpurl+=this.url.edit; | |||
| method = 'put'; | |||
| } | |||
| httpAction(httpurl,this.model,method).then((res)=>{ | |||
| if(res.success){ | |||
| that.$message.success(res.message); | |||
| that.$emit('ok'); | |||
| }else{ | |||
| that.$message.warning(res.message); | |||
| } | |||
| }).finally(() => { | |||
| that.confirmLoading = false; | |||
| }) | |||
| } | |||
| }) | |||
| }, | |||
| } | |||
| } | |||
| </script> | |||
| @ -0,0 +1,84 @@ | |||
| <template> | |||
| <a-drawer | |||
| :title="title" | |||
| :width="width" | |||
| placement="right" | |||
| :closable="false" | |||
| @close="close" | |||
| destroyOnClose | |||
| :visible="visible"> | |||
| <tb-premium-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></tb-premium-form> | |||
| <div class="drawer-footer"> | |||
| <a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button> | |||
| <a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;">提交</a-button> | |||
| </div> | |||
| </a-drawer> | |||
| </template> | |||
| <script> | |||
| import TbPremiumForm from './TbPremiumForm' | |||
| export default { | |||
| name: 'TbPremiumModal', | |||
| components: { | |||
| TbPremiumForm | |||
| }, | |||
| data () { | |||
| return { | |||
| title:"操作", | |||
| width:800, | |||
| visible: false, | |||
| disableSubmit: false | |||
| } | |||
| }, | |||
| methods: { | |||
| add () { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.add(); | |||
| }) | |||
| }, | |||
| edit (record) { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.edit(record); | |||
| }); | |||
| }, | |||
| close () { | |||
| this.$emit('close'); | |||
| this.visible = false; | |||
| }, | |||
| submitCallback(){ | |||
| this.$emit('ok'); | |||
| this.visible = false; | |||
| }, | |||
| handleOk () { | |||
| this.$refs.realForm.submitForm(); | |||
| }, | |||
| handleCancel () { | |||
| this.close() | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="less" scoped> | |||
| /** Button按钮间距 */ | |||
| .ant-btn { | |||
| margin-left: 30px; | |||
| margin-bottom: 30px; | |||
| float: right; | |||
| } | |||
| .drawer-footer{ | |||
| position: absolute; | |||
| bottom: -8px; | |||
| width: 100%; | |||
| border-top: 1px solid #e8e8e8; | |||
| padding: 10px 16px; | |||
| text-align: right; | |||
| left: 0; | |||
| background: #fff; | |||
| border-radius: 0 0 2px 2px; | |||
| } | |||
| </style> | |||
| @ -0,0 +1,60 @@ | |||
| <template> | |||
| <j-modal | |||
| :title="title" | |||
| :width="width" | |||
| :visible="visible" | |||
| switchFullscreen | |||
| @ok="handleOk" | |||
| :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" | |||
| @cancel="handleCancel" | |||
| cancelText="关闭"> | |||
| <tb-premium-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></tb-premium-form> | |||
| </j-modal> | |||
| </template> | |||
| <script> | |||
| import TbPremiumForm from './TbPremiumForm' | |||
| export default { | |||
| name: 'TbPremiumModal', | |||
| components: { | |||
| TbPremiumForm | |||
| }, | |||
| data () { | |||
| return { | |||
| title:'', | |||
| width:800, | |||
| visible: false, | |||
| disableSubmit: false | |||
| } | |||
| }, | |||
| methods: { | |||
| add () { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.add(); | |||
| }) | |||
| }, | |||
| edit (record) { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.edit(record); | |||
| }) | |||
| }, | |||
| close () { | |||
| this.$emit('close'); | |||
| this.visible = false; | |||
| }, | |||
| handleOk () { | |||
| this.$refs.realForm.submitForm(); | |||
| }, | |||
| submitCallback(){ | |||
| this.$emit('ok'); | |||
| this.visible = false; | |||
| }, | |||
| handleCancel () { | |||
| this.close() | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| @ -0,0 +1,357 @@ | |||
| <template> | |||
| <a-card :bordered="false"> | |||
| <!-- 查询区域 --> | |||
| <div class="table-page-search-wrapper"> | |||
| <a-form layout="inline" @keyup.enter.native="searchQuery"> | |||
| <a-row :gutter="24"> | |||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||
| <a-form-item label="用户名"> | |||
| <a-input placeholder="请输入用户名" v-model="queryParam.userName"></a-input> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||
| <a-form-item label="工人名"> | |||
| <a-input placeholder="请输入工人名" v-model="queryParam.workName"></a-input> | |||
| </a-form-item> | |||
| </a-col> | |||
| <template v-if="toggleSearchStatus"> | |||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||
| <a-form-item label="公司名称"> | |||
| <a-input placeholder="请输入公司名称" v-model="queryParam.companyName"></a-input> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||
| <a-form-item label="工人联系方式"> | |||
| <a-input placeholder="请输入工人联系方式" v-model="queryParam.phone"></a-input> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||
| <a-form-item label="招聘方联系方式"> | |||
| <a-input placeholder="请输入招聘方联系方式" v-model="queryParam.bossPhone"></a-input> | |||
| </a-form-item> | |||
| </a-col> | |||
| </template> | |||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||
| <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> | |||
| <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> | |||
| <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> | |||
| <a @click="handleToggleSearch" style="margin-left: 8px"> | |||
| {{ toggleSearchStatus ? '收起' : '展开' }} | |||
| <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> | |||
| </a> | |||
| </span> | |||
| </a-col> | |||
| </a-row> | |||
| </a-form> | |||
| </div> | |||
| <!-- 查询区域-END --> | |||
| <!-- 操作按钮区域 --> | |||
| <div class="table-operator"> | |||
| <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> | |||
| <a-button type="primary" icon="download" @click="handleExportXls('tb_task')">导出</a-button> | |||
| <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> | |||
| <a-button type="primary" icon="import">导入</a-button> | |||
| </a-upload> | |||
| <!-- 高级查询区域 --> | |||
| <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> | |||
| <a-dropdown v-if="selectedRowKeys.length > 0"> | |||
| <a-menu slot="overlay"> | |||
| <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item> | |||
| </a-menu> | |||
| <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button> | |||
| </a-dropdown> | |||
| </div> | |||
| <!-- table区域-begin --> | |||
| <div> | |||
| <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> | |||
| <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 | |||
| <a style="margin-left: 24px" @click="onClearSelected">清空</a> | |||
| </div> | |||
| <a-table | |||
| ref="table" | |||
| size="middle" | |||
| :scroll="{x:true}" | |||
| bordered | |||
| rowKey="id" | |||
| :columns="columns" | |||
| :dataSource="dataSource" | |||
| :pagination="ipagination" | |||
| :loading="loading" | |||
| :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" | |||
| class="j-table-force-nowrap" | |||
| @change="handleTableChange"> | |||
| <template slot="htmlSlot" slot-scope="text"> | |||
| <div v-html="text"></div> | |||
| </template> | |||
| <template slot="imgSlot" slot-scope="text,record"> | |||
| <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> | |||
| <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> | |||
| </template> | |||
| <template slot="fileSlot" slot-scope="text"> | |||
| <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> | |||
| <a-button | |||
| v-else | |||
| :ghost="true" | |||
| type="primary" | |||
| icon="download" | |||
| size="small" | |||
| @click="downloadFile(text)"> | |||
| 下载 | |||
| </a-button> | |||
| </template> | |||
| <span slot="action" slot-scope="text, record"> | |||
| <a @click="handleEdit(record)">编辑</a> | |||
| <a-divider type="vertical" /> | |||
| <a-dropdown> | |||
| <a class="ant-dropdown-link">更多 <a-icon type="down" /></a> | |||
| <a-menu slot="overlay"> | |||
| <a-menu-item> | |||
| <a @click="handleDetail(record)">详情</a> | |||
| </a-menu-item> | |||
| <a-menu-item> | |||
| <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> | |||
| <a>删除</a> | |||
| </a-popconfirm> | |||
| </a-menu-item> | |||
| </a-menu> | |||
| </a-dropdown> | |||
| </span> | |||
| </a-table> | |||
| </div> | |||
| <tb-task-modal ref="modalForm" @ok="modalFormOk"></tb-task-modal> | |||
| </a-card> | |||
| </template> | |||
| <script> | |||
| import '@/assets/less/TableExpand.less' | |||
| import { mixinDevice } from '@/utils/mixin' | |||
| import { JeecgListMixin } from '@/mixins/JeecgListMixin' | |||
| import TbTaskModal from './modules/TbTaskModal' | |||
| import {filterMultiDictText} from '@/components/dict/JDictSelectUtil' | |||
| export default { | |||
| name: 'TbTaskList', | |||
| mixins:[JeecgListMixin, mixinDevice], | |||
| components: { | |||
| TbTaskModal | |||
| }, | |||
| data () { | |||
| return { | |||
| description: 'tb_task管理页面', | |||
| // 表头 | |||
| columns: [ | |||
| { | |||
| title: '#', | |||
| dataIndex: '', | |||
| key:'rowIndex', | |||
| width:60, | |||
| align:"center", | |||
| customRender:function (t,r,index) { | |||
| return parseInt(index)+1; | |||
| } | |||
| }, | |||
| { | |||
| title:'用户名', | |||
| align:"center", | |||
| dataIndex: 'userName' | |||
| }, | |||
| { | |||
| title:'工人名', | |||
| align:"center", | |||
| dataIndex: 'workName' | |||
| }, | |||
| { | |||
| title:'头像图片', | |||
| align:"center", | |||
| dataIndex: 'headPic', | |||
| scopedSlots: {customRender: 'imgSlot'} | |||
| }, | |||
| { | |||
| title:'工作标题', | |||
| align:"center", | |||
| dataIndex: 'title' | |||
| }, | |||
| { | |||
| title:'公司名称', | |||
| align:"center", | |||
| dataIndex: 'companyName' | |||
| }, | |||
| { | |||
| title:'工人出发地址', | |||
| align:"center", | |||
| dataIndex: 'workerAddress' | |||
| }, | |||
| { | |||
| title:'出行方式 0出租车 1 网约车 2 公交地铁 3无', | |||
| align:"center", | |||
| dataIndex: 'travelType_dictText' | |||
| }, | |||
| { | |||
| title:'上班地址', | |||
| align:"center", | |||
| dataIndex: 'workAddress' | |||
| }, | |||
| { | |||
| title:'行业/工种', | |||
| align:"center", | |||
| dataIndex: 'industryName' | |||
| }, | |||
| { | |||
| title:'工人个人简介', | |||
| align:"center", | |||
| dataIndex: 'detail', | |||
| scopedSlots: {customRender: 'htmlSlot'} | |||
| }, | |||
| { | |||
| title:'工作内容', | |||
| align:"center", | |||
| dataIndex: 'workDetail', | |||
| scopedSlots: {customRender: 'htmlSlot'} | |||
| }, | |||
| { | |||
| title:'图片上传', | |||
| align:"center", | |||
| dataIndex: 'workPic', | |||
| scopedSlots: {customRender: 'imgSlot'} | |||
| }, | |||
| { | |||
| title:'工人联系方式', | |||
| align:"center", | |||
| dataIndex: 'phone' | |||
| }, | |||
| { | |||
| title:'招聘方联系方式', | |||
| align:"center", | |||
| dataIndex: 'bossPhone' | |||
| }, | |||
| { | |||
| title:'角色 0招聘方 1 求职方', | |||
| align:"center", | |||
| dataIndex: 'role_dictText' | |||
| }, | |||
| { | |||
| title:'年龄', | |||
| align:"center", | |||
| dataIndex: 'age' | |||
| }, | |||
| { | |||
| title:'性别', | |||
| align:"center", | |||
| dataIndex: 'gender_dictText' | |||
| }, | |||
| { | |||
| title:'期望日薪', | |||
| align:"center", | |||
| dataIndex: 'dayMoney' | |||
| }, | |||
| { | |||
| title:'时间范围', | |||
| align:"center", | |||
| dataIndex: 'startTime' | |||
| }, | |||
| { | |||
| title:'时间范围', | |||
| align:"center", | |||
| dataIndex: 'endTime' | |||
| }, | |||
| { | |||
| title:'工作时长', | |||
| align:"center", | |||
| dataIndex: 'workTime' | |||
| }, | |||
| { | |||
| title:'期望薪资最小值', | |||
| align:"center", | |||
| dataIndex: 'moneymin' | |||
| }, | |||
| { | |||
| title:'期望薪资最大值', | |||
| align:"center", | |||
| dataIndex: 'moneymax' | |||
| }, | |||
| { | |||
| title:'审核状态 0审核中 1 审核通过 2审核未通过', | |||
| align:"center", | |||
| dataIndex: 'auditStatus_dictText' | |||
| }, | |||
| { | |||
| title:'结算方式 0提前支付 1 试用后支付', | |||
| align:"center", | |||
| dataIndex: 'payType_dictText' | |||
| }, | |||
| { | |||
| title: '操作', | |||
| dataIndex: 'action', | |||
| align:"center", | |||
| fixed:"right", | |||
| width:147, | |||
| scopedSlots: { customRender: 'action' } | |||
| } | |||
| ], | |||
| url: { | |||
| list: "/tbTask/tbTask/list", | |||
| delete: "/tbTask/tbTask/delete", | |||
| deleteBatch: "/tbTask/tbTask/deleteBatch", | |||
| exportXlsUrl: "/tbTask/tbTask/exportXls", | |||
| importExcelUrl: "tbTask/tbTask/importExcel", | |||
| }, | |||
| dictOptions:{}, | |||
| superFieldList:[], | |||
| } | |||
| }, | |||
| created() { | |||
| this.getSuperFieldList(); | |||
| }, | |||
| computed: { | |||
| importExcelUrl: function(){ | |||
| return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; | |||
| }, | |||
| }, | |||
| methods: { | |||
| initDictConfig(){ | |||
| }, | |||
| getSuperFieldList(){ | |||
| let fieldList=[]; | |||
| fieldList.push({type:'string',value:'userName',text:'用户名',dictCode:''}) | |||
| fieldList.push({type:'string',value:'workName',text:'工人名',dictCode:''}) | |||
| fieldList.push({type:'Text',value:'headPic',text:'头像图片',dictCode:''}) | |||
| fieldList.push({type:'string',value:'title',text:'工作标题',dictCode:''}) | |||
| fieldList.push({type:'string',value:'companyName',text:'公司名称',dictCode:''}) | |||
| fieldList.push({type:'string',value:'workerAddress',text:'工人出发地址',dictCode:''}) | |||
| fieldList.push({type:'int',value:'travelType',text:'出行方式 0出租车 1 网约车 2 公交地铁 3无',dictCode:'travel_type'}) | |||
| fieldList.push({type:'string',value:'workAddress',text:'上班地址',dictCode:''}) | |||
| fieldList.push({type:'string',value:'industryName',text:'行业/工种',dictCode:''}) | |||
| fieldList.push({type:'Text',value:'detail',text:'工人个人简介',dictCode:''}) | |||
| fieldList.push({type:'Text',value:'workDetail',text:'工作内容',dictCode:''}) | |||
| fieldList.push({type:'Text',value:'workPic',text:'图片上传',dictCode:''}) | |||
| fieldList.push({type:'string',value:'phone',text:'工人联系方式',dictCode:''}) | |||
| fieldList.push({type:'string',value:'bossPhone',text:'招聘方联系方式',dictCode:''}) | |||
| fieldList.push({type:'int',value:'role',text:'角色 0招聘方 1 求职方',dictCode:'user_role'}) | |||
| fieldList.push({type:'int',value:'age',text:'年龄',dictCode:''}) | |||
| fieldList.push({type:'int',value:'gender',text:'性别',dictCode:'sex'}) | |||
| fieldList.push({type:'int',value:'dayMoney',text:'期望日薪',dictCode:''}) | |||
| fieldList.push({type:'datetime',value:'startTime',text:'时间范围'}) | |||
| fieldList.push({type:'datetime',value:'endTime',text:'时间范围'}) | |||
| fieldList.push({type:'string',value:'workTime',text:'工作时长',dictCode:''}) | |||
| fieldList.push({type:'int',value:'moneymin',text:'期望薪资最小值',dictCode:''}) | |||
| fieldList.push({type:'int',value:'moneymax',text:'期望薪资最大值',dictCode:''}) | |||
| fieldList.push({type:'int',value:'auditStatus',text:'审核状态 0审核中 1 审核通过 2审核未通过',dictCode:'audit_status'}) | |||
| fieldList.push({type:'int',value:'payType',text:'结算方式 0提前支付 1 试用后支付',dictCode:'pay_type'}) | |||
| this.superFieldList = fieldList | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| <style scoped> | |||
| @import '~@assets/less/common.less'; | |||
| </style> | |||
| @ -0,0 +1,224 @@ | |||
| <template> | |||
| <a-spin :spinning="confirmLoading"> | |||
| <j-form-container :disabled="formDisabled"> | |||
| <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> | |||
| <a-row> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="用户名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userName"> | |||
| <a-input v-model="model.userName" placeholder="请输入用户名" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="工人名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workName"> | |||
| <a-input v-model="model.workName" placeholder="请输入工人名" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="头像图片" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="headPic"> | |||
| <j-image-upload isMultiple v-model="model.headPic" ></j-image-upload> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="工作标题" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="title"> | |||
| <a-input v-model="model.title" placeholder="请输入工作标题" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="公司名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="companyName"> | |||
| <a-input v-model="model.companyName" placeholder="请输入公司名称" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="工人出发地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workerAddress"> | |||
| <a-input v-model="model.workerAddress" placeholder="请输入工人出发地址" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="出行方式 0出租车 1 网约车 2 公交地铁 3无" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="travelType"> | |||
| <j-dict-select-tag type="list" v-model="model.travelType" dictCode="travel_type" placeholder="请选择出行方式 0出租车 1 网约车 2 公交地铁 3无" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="上班地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workAddress"> | |||
| <a-input v-model="model.workAddress" placeholder="请输入上班地址" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="行业/工种" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="industryName"> | |||
| <a-input v-model="model.industryName" placeholder="请输入行业/工种" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="工人个人简介" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="detail"> | |||
| <j-editor v-model="model.detail" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="工作内容" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workDetail"> | |||
| <j-editor v-model="model.workDetail" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="图片上传" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workPic"> | |||
| <j-image-upload isMultiple v-model="model.workPic" ></j-image-upload> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="工人联系方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="phone"> | |||
| <a-input v-model="model.phone" placeholder="请输入工人联系方式" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="招聘方联系方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="bossPhone"> | |||
| <a-input v-model="model.bossPhone" placeholder="请输入招聘方联系方式" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="角色 0招聘方 1 求职方" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="role"> | |||
| <j-dict-select-tag type="list" v-model="model.role" dictCode="user_role" placeholder="请选择角色 0招聘方 1 求职方" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="年龄" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="age"> | |||
| <a-input-number v-model="model.age" placeholder="请输入年龄" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="性别" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="gender"> | |||
| <j-dict-select-tag type="list" v-model="model.gender" dictCode="sex" placeholder="请选择性别" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="期望日薪" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="dayMoney"> | |||
| <a-input-number v-model="model.dayMoney" placeholder="请输入期望日薪" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="时间范围" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="startTime"> | |||
| <j-date placeholder="请选择时间范围" v-model="model.startTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="时间范围" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="endTime"> | |||
| <j-date placeholder="请选择时间范围" v-model="model.endTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="工作时长" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workTime"> | |||
| <a-input v-model="model.workTime" placeholder="请输入工作时长" ></a-input> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="期望薪资最小值" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="moneymin"> | |||
| <a-input-number v-model="model.moneymin" placeholder="请输入期望薪资最小值" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="期望薪资最大值" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="moneymax"> | |||
| <a-input-number v-model="model.moneymax" placeholder="请输入期望薪资最大值" style="width: 100%" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="审核状态 0审核中 1 审核通过 2审核未通过" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="auditStatus"> | |||
| <j-dict-select-tag type="list" v-model="model.auditStatus" dictCode="audit_status" placeholder="请选择审核状态 0审核中 1 审核通过 2审核未通过" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| <a-col :span="24"> | |||
| <a-form-model-item label="结算方式 0提前支付 1 试用后支付" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="payType"> | |||
| <j-dict-select-tag type="list" v-model="model.payType" dictCode="pay_type" placeholder="请选择结算方式 0提前支付 1 试用后支付" /> | |||
| </a-form-model-item> | |||
| </a-col> | |||
| </a-row> | |||
| </a-form-model> | |||
| </j-form-container> | |||
| </a-spin> | |||
| </template> | |||
| <script> | |||
| import { httpAction, getAction } from '@/api/manage' | |||
| import { validateDuplicateValue } from '@/utils/util' | |||
| export default { | |||
| name: 'TbTaskForm', | |||
| components: { | |||
| }, | |||
| props: { | |||
| //表单禁用 | |||
| disabled: { | |||
| type: Boolean, | |||
| default: false, | |||
| required: false | |||
| } | |||
| }, | |||
| data () { | |||
| return { | |||
| model:{ | |||
| }, | |||
| labelCol: { | |||
| xs: { span: 24 }, | |||
| sm: { span: 5 }, | |||
| }, | |||
| wrapperCol: { | |||
| xs: { span: 24 }, | |||
| sm: { span: 16 }, | |||
| }, | |||
| confirmLoading: false, | |||
| validatorRules: { | |||
| }, | |||
| url: { | |||
| add: "/tbTask/tbTask/add", | |||
| edit: "/tbTask/tbTask/edit", | |||
| queryById: "/tbTask/tbTask/queryById" | |||
| } | |||
| } | |||
| }, | |||
| computed: { | |||
| formDisabled(){ | |||
| return this.disabled | |||
| }, | |||
| }, | |||
| created () { | |||
| //备份model原始值 | |||
| this.modelDefault = JSON.parse(JSON.stringify(this.model)); | |||
| }, | |||
| methods: { | |||
| add () { | |||
| this.edit(this.modelDefault); | |||
| }, | |||
| edit (record) { | |||
| this.model = Object.assign({}, record); | |||
| this.visible = true; | |||
| }, | |||
| submitForm () { | |||
| const that = this; | |||
| // 触发表单验证 | |||
| this.$refs.form.validate(valid => { | |||
| if (valid) { | |||
| that.confirmLoading = true; | |||
| let httpurl = ''; | |||
| let method = ''; | |||
| if(!this.model.id){ | |||
| httpurl+=this.url.add; | |||
| method = 'post'; | |||
| }else{ | |||
| httpurl+=this.url.edit; | |||
| method = 'put'; | |||
| } | |||
| httpAction(httpurl,this.model,method).then((res)=>{ | |||
| if(res.success){ | |||
| that.$message.success(res.message); | |||
| that.$emit('ok'); | |||
| }else{ | |||
| that.$message.warning(res.message); | |||
| } | |||
| }).finally(() => { | |||
| that.confirmLoading = false; | |||
| }) | |||
| } | |||
| }) | |||
| }, | |||
| } | |||
| } | |||
| </script> | |||
| @ -0,0 +1,84 @@ | |||
| <template> | |||
| <a-drawer | |||
| :title="title" | |||
| :width="width" | |||
| placement="right" | |||
| :closable="false" | |||
| @close="close" | |||
| destroyOnClose | |||
| :visible="visible"> | |||
| <tb-task-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></tb-task-form> | |||
| <div class="drawer-footer"> | |||
| <a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button> | |||
| <a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;">提交</a-button> | |||
| </div> | |||
| </a-drawer> | |||
| </template> | |||
| <script> | |||
| import TbTaskForm from './TbTaskForm' | |||
| export default { | |||
| name: 'TbTaskModal', | |||
| components: { | |||
| TbTaskForm | |||
| }, | |||
| data () { | |||
| return { | |||
| title:"操作", | |||
| width:800, | |||
| visible: false, | |||
| disableSubmit: false | |||
| } | |||
| }, | |||
| methods: { | |||
| add () { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.add(); | |||
| }) | |||
| }, | |||
| edit (record) { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.edit(record); | |||
| }); | |||
| }, | |||
| close () { | |||
| this.$emit('close'); | |||
| this.visible = false; | |||
| }, | |||
| submitCallback(){ | |||
| this.$emit('ok'); | |||
| this.visible = false; | |||
| }, | |||
| handleOk () { | |||
| this.$refs.realForm.submitForm(); | |||
| }, | |||
| handleCancel () { | |||
| this.close() | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| <style lang="less" scoped> | |||
| /** Button按钮间距 */ | |||
| .ant-btn { | |||
| margin-left: 30px; | |||
| margin-bottom: 30px; | |||
| float: right; | |||
| } | |||
| .drawer-footer{ | |||
| position: absolute; | |||
| bottom: -8px; | |||
| width: 100%; | |||
| border-top: 1px solid #e8e8e8; | |||
| padding: 10px 16px; | |||
| text-align: right; | |||
| left: 0; | |||
| background: #fff; | |||
| border-radius: 0 0 2px 2px; | |||
| } | |||
| </style> | |||
| @ -0,0 +1,60 @@ | |||
| <template> | |||
| <j-modal | |||
| :title="title" | |||
| :width="width" | |||
| :visible="visible" | |||
| switchFullscreen | |||
| @ok="handleOk" | |||
| :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" | |||
| @cancel="handleCancel" | |||
| cancelText="关闭"> | |||
| <tb-task-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></tb-task-form> | |||
| </j-modal> | |||
| </template> | |||
| <script> | |||
| import TbTaskForm from './TbTaskForm' | |||
| export default { | |||
| name: 'TbTaskModal', | |||
| components: { | |||
| TbTaskForm | |||
| }, | |||
| data () { | |||
| return { | |||
| title:'', | |||
| width:800, | |||
| visible: false, | |||
| disableSubmit: false | |||
| } | |||
| }, | |||
| methods: { | |||
| add () { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.add(); | |||
| }) | |||
| }, | |||
| edit (record) { | |||
| this.visible=true | |||
| this.$nextTick(()=>{ | |||
| this.$refs.realForm.edit(record); | |||
| }) | |||
| }, | |||
| close () { | |||
| this.$emit('close'); | |||
| this.visible = false; | |||
| }, | |||
| handleOk () { | |||
| this.$refs.realForm.submitForm(); | |||
| }, | |||
| submitCallback(){ | |||
| this.$emit('ok'); | |||
| this.visible = false; | |||
| }, | |||
| handleCancel () { | |||
| this.close() | |||
| } | |||
| } | |||
| } | |||
| </script> | |||