From 26bf11018b2b145942631421c7e634c5df91aea6 Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期二, 21 一月 2025 15:33:53 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingModal.vue | 65 ++++ src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingForm.vue | 266 +++++++++++++++++++ src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingApprovalModal.vue | 65 ++++ src/views/dnc/base/WorkUpcomingList.vue | 87 +---- src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingApprovalForm.vue | 237 ++++++++++++++++ src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingModal__Style#Drawer.vue | 91 ++++++ src/views/dnc/base/modules/WorkDone/WorkDoneForm.vue | 8 7 files changed, 756 insertions(+), 63 deletions(-) diff --git a/src/views/dnc/base/WorkUpcomingList.vue b/src/views/dnc/base/WorkUpcomingList.vue index 23453c8..c034832 100644 --- a/src/views/dnc/base/WorkUpcomingList.vue +++ b/src/views/dnc/base/WorkUpcomingList.vue @@ -33,11 +33,15 @@ <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> <div class="table-operator"> <a-button type="primary" @click="searchQuery" icon="search">鍒锋柊</a-button> -<!-- <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button>--> + <a-button @click="handleAdd" type="primary" icon="plus">鎵归噺瀹℃牳</a-button> </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" @@ -49,6 +53,7 @@ :dataSource="dataSource" :pagination="ipagination" :loading="loading" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" class="j-table-force-nowrap" @change="handleTableChange"> @@ -73,33 +78,17 @@ </template> <span slot="action" slot-scope="text, record"> - <a @click="handleEdit(record)">缂栬緫</a> + <a @click="handleApproval(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> + <a @click="handleDetail(record)">璇︽儏</a> </span> </a-table> </div> - <AssignApproveUserModal ref="modalForm" @ok="modalFormOk"></AssignApproveUserModal> + <WorkUpcomingModal ref="modalForm" @ok="modalFormOk"></WorkUpcomingModal> + <WorkUpcomingApprovalModal ref="modalFormApproval" @ok="modalFormOk"></WorkUpcomingApprovalModal> </a-card> </template> @@ -109,14 +98,15 @@ import { mixinDevice } from '@/utils/mixin' import { JeecgListMixin } from '@/mixins/JeecgListMixin' import JDictSelectTag from '@comp/dict/JDictSelectTag.vue' -import AssignApproveUserModal from './modules/AssignApproveUser/AssignApproveUserModal__Style#Drawer.vue' - +import WorkUpcomingModal from './modules/WorkUpcoming/WorkUpcomingModal__Style#Drawer.vue' +import WorkUpcomingApprovalModal from './modules/WorkUpcoming/WorkUpcomingApprovalModal.vue' export default { name: 'AssignApproveUser', mixins:[JeecgListMixin, mixinDevice], components: { JDictSelectTag, - AssignApproveUserModal + WorkUpcomingModal, + WorkUpcomingApprovalModal }, data () { return { @@ -134,58 +124,28 @@ } }, { - title: '浜у搧鍚嶇О', + title: '鏂囨。鍚嶇О', align: "center", - dataIndex: 'productName', + dataIndex: 'assignFileStream.docName', width: 200, }, { title: '閮ㄤ欢鍚嶇О', align: "center", - dataIndex: 'componentName', + dataIndex: 'assignFileStream.deviceName', width: 220, - }, - { - title: '闆朵欢鍚嶇О', - align: "center", - dataIndex: 'partsName', - width: 250, - }, - { - title: '鏂囨。鍚嶇О', - align: "center", - dataIndex: 'docName', - width: 250, - }, - { - title: '璁惧鍚嶇О', - align: "center", - dataIndex: 'deviceName', - width: 250, }, { title: '鏂囨。鐗堟湰', align: "center", - dataIndex: 'version', + dataIndex: 'assignFileStream.version', width: 250, }, { - title: '鐢宠浜�', + title: '瀵嗙骇', align: "center", - dataIndex: 'applyUser_dictText', - width:300 - }, - { - title: '鐢宠鍘熷洜', - align: "center", - dataIndex: 'applyReason', - width:300 - }, - { - title: '鐢宠鏃堕棿', - align: "center", - dataIndex: 'applyTime', - width:300 + dataIndex: 'assignFileStream.secretLevel', + width: 250, }, { title: '鎿嶄綔', @@ -212,6 +172,11 @@ }, methods: { initDictConfig(){ + }, + handleApproval(record){ + this.$refs.modalFormApproval.edit(record); + this.$refs.modalFormApproval.title = "瀹℃壒"; + this.$refs.modalFormApproval.disableSubmit = false; } } } diff --git a/src/views/dnc/base/modules/WorkDone/WorkDoneForm.vue b/src/views/dnc/base/modules/WorkDone/WorkDoneForm.vue index 2d11626..ba8d8ff 100644 --- a/src/views/dnc/base/modules/WorkDone/WorkDoneForm.vue +++ b/src/views/dnc/base/modules/WorkDone/WorkDoneForm.vue @@ -18,7 +18,7 @@ <a-input v-decorator="['componentName', validatorRules.componentName]" placeholder="璇疯緭鍏ラ儴浠跺悕绉�"></a-input> </a-form-item> </a-col> - <a-col :span="24"> + <a-col :span="24" v-if="part"> <a-form-item label="闆朵欢鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-input v-decorator="['partsName', validatorRules.partsName]" placeholder="璇疯緭鍏ラ浂浠跺悕绉�"></a-input> </a-form-item> @@ -171,7 +171,8 @@ edit: "/nc/definition/edit", // queryById: "/zhshj/wglltwh/query/by/id" }, - userOptions:[] + userOptions:[], + part:false, } }, computed: { @@ -205,6 +206,9 @@ this.form.resetFields(); this.model = Object.assign({}, record); this.visible = true; + if (record.partsName){ + this.part=true + } this.$nextTick(() => { this.form.setFieldsValue(pick(this.model,'productName','componentName','partsName','docName','deviceName','version','applyUser','applyReason','applyTime','approveUser','approveTime','approveContent')) }) diff --git a/src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingApprovalForm.vue b/src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingApprovalForm.vue new file mode 100644 index 0000000..eafac45 --- /dev/null +++ b/src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingApprovalForm.vue @@ -0,0 +1,237 @@ +<!-- + Description: 鎴戠殑宸ヤ綔鍙�-浠e姙-璇︽儏 Form + Author: 浣滆�� liuyh + Date: 2025-01-15 +--> +<template> + <a-spin :spinning="confirmLoading"> + <j-form-container :disabled="formDisabled"> + <a-form :form="form" slot="detail"> + <a-row> + <a-col :span="24"> + <a-form-item label="鏂囨。鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['assignFileStream.docName', validatorRules.docName]" :disabled="true" placeholder="璇疯緭鍏ユ枃妗e悕绉�"></a-input> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="鏂囨。鐗堟湰" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['assignFileStream.version', validatorRules.version]" :disabled="true" placeholder="璇疯緭鍏ユ枃妗g増鏈�"></a-input> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="鐢宠浜�" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['assignFileStream.applyUser', validatorRules.applyUser]" :disabled="true" placeholder="璇疯緭鍏ョ敵璇蜂汉"></a-input> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="鐢宠鍘熷洜" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-textarea v-decorator="['assignFileStream.applyReason']" rows="4" :disabled="true" placeholder="璇疯緭鍏ョ敵璇峰師鍥�"/> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="瀵嗙骇涓�" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <j-dict-select-tag placeholder="璇烽�夋嫨瀵嗙骇" style="width:100%" :trigger-change="true" v-decorator="['secretLevel']" dictCode="dnc_secret_level"/> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="鍚屾剰瀵煎叆宸ユ帶缃�" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-checkbox v-model="isAgreed">鍚屾剰瀵煎叆宸ユ帶缃�</a-checkbox> + </a-form-item> + </a-col> + <a-col :span="24" > + <a-form-item label="瀹℃壒鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-select placeholder="瀹℃壒鐘舵��"> + <a-select-option v-if="isAgreed" value="1">鍚屾剰</a-select-option> + <a-select-option v-if="!isAgreed" value="2">鎷掔粷</a-select-option> + </a-select> +<!-- <j-dict-select-tag placeholder="璇烽�夋嫨瀹℃壒鐘舵��" style="width:100%" :trigger-change="true" v-decorator="['status', validatorRules.status]" dictCode="dnc_assign_stream_status"/>--> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="瀹℃壒鎰忚" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-textarea v-decorator="['assignFileStream.approveContent', validatorRules.approveContent]" rows="4" placeholder="璇疯緭鍏ュ鎵规剰瑙�"/> + </a-form-item> + </a-col> + <a-col v-if="showFlowSubmitButton" :span="24" style="text-align: center"> + <a-button @click="submitForm">鎻� 浜�</a-button> + </a-col> + </a-row> + </a-form> + </j-form-container> + </a-spin> +</template> + +<script> + + import { httpAction, getAction } from '@/api/manage' + import pick from 'lodash.pick' + import JFormContainer from '@/components/jeecg/JFormContainer' + import JDictSelectTag from "@/components/dict/JDictSelectTag" + + export default { + name: 'AssignApproveUserForm', + components: { + JFormContainer, + JDictSelectTag, + }, + props: { + //娴佺▼琛ㄥ崟data + formData: { + type: Object, + default: ()=>{}, + required: false + }, + //琛ㄥ崟妯″紡锛歵rue娴佺▼琛ㄥ崟 false鏅�氳〃鍗� + formBpm: { + type: Boolean, + default: false, + required: false + }, + //琛ㄥ崟绂佺敤 + disabled: { + type: Boolean, + default: false, + required: false + } + }, + data () { + return { + form: this.$form.createForm(this), + users:"", + isAgreed:true, + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 }, + }, + confirmLoading: false, + validatorRules: { + version: { + rules: [ + { required: true, message: '璇疯緭鍏ユ枃妗g増鏈�!'}, + ] + }, + applyUser: { + rules: [ + { required: true, message: '璇烽�夋嫨鐢宠浜�!'}, + ] + }, + approveContent: { + rules: [ + { required: true, message: '璇疯緭鍏ュ鎵规剰瑙�!'}, + ] + }, + docName: { + rules: [ + { required: true, message: '璇疯緭鍏ユ枃妗e悕绉�!'}, + ] + }, + status: { + rules: [ + { required: true, message: '璇烽�夋嫨瀹℃壒鐘舵��!'}, + ] + }, + }, + url: { + add: "/nc/definition/add", + edit: "/nc/definition/edit", + approve:"/nc/activit/assign/file/approve", + // queryById: "/zhshj/wglltwh/query/by/id" + }, + userOptions:[], + part:false, + taskId:"", + streamId:"", + } + }, + computed: { + formDisabled(){ + if(this.formBpm===true){ + if(this.formData.disabled===false){ + return false + } + return true + } + return this.disabled + }, + showFlowSubmitButton(){ + if(this.formBpm===true){ + if(this.formData.disabled===false){ + return true + } + } + return false + } + }, + created () { + //濡傛灉鏄祦绋嬩腑琛ㄥ崟锛屽垯闇�瑕佸姞杞芥祦绋嬭〃鍗昫ata + this.showFlowData(); + }, + methods: { + add () { + this.edit({}); + }, + edit (record) { + this.form.resetFields(); + this.model = Object.assign({}, record); + this.taskId=record.id; + this.streamId=record.businessKey; + if (record.assignFileStream.partsName){ + this.part=true + } + this.visible = true; + this.$nextTick(() => { + this.form.setFieldsValue(pick(this.model,'assignFileStream')) + }) + }, + getFormFieldValue(field){ + return this.form.getFieldValue(field) + }, + //娓叉煋娴佺▼琛ㄥ崟鏁版嵁 + showFlowData(){ + if(this.formBpm === true){ + let params = {id:this.formData.dataId}; + getAction(this.url.queryById,params).then((res)=>{ + if(res.success){ + this.edit (res.result); + } + }); + } + }, + submitForm () { + const that = this; + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.form.validateFields((err, values) => { + if (!err) { + that.confirmLoading = true; + let url=this.url.approve+"/"+this.taskId+"/"+this.streamId; + let method = 'post'; + let formData = {}; + formData.approveContent = values.assignFileStream.approveContent; + if (this.isAgreed){ + formData.status ='2' + }else { + formData.status ='3' + } + console.log("琛ㄥ崟鎻愪氦鏁版嵁",formData) + httpAction(url,formData,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> \ No newline at end of file diff --git a/src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingApprovalModal.vue b/src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingApprovalModal.vue new file mode 100644 index 0000000..82410e0 --- /dev/null +++ b/src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingApprovalModal.vue @@ -0,0 +1,65 @@ +<!-- + Description: 鎴戠殑宸ヤ綔鍙�-浠e姙 Modal + Author: 浣滆�� liuyh + Date: 2025-01-15 +--> +<template> + <j-modal + :title="title" + :width="width" + :visible="visible" + switchFullscreen + @ok="handleOk" + :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" + @cancel="handleCancel" + cancelText="鍏抽棴"> + <WorkUpcomingApprovalForm ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></WorkUpcomingApprovalForm> + </j-modal> +</template> + +<script> + + import WorkUpcomingApprovalForm from './WorkUpcomingApprovalForm.vue' + export default { + name: 'AssignApproveUserModal', + components: { + WorkUpcomingApprovalForm + }, + 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> \ No newline at end of file diff --git a/src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingForm.vue b/src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingForm.vue new file mode 100644 index 0000000..2fff05c --- /dev/null +++ b/src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingForm.vue @@ -0,0 +1,266 @@ +<!-- + Description: 鎴戠殑宸ヤ綔鍙�-浠e姙-璇︽儏 Form + Author: 浣滆�� liuyh + Date: 2025-01-15 +--> +<template> + <a-spin :spinning="confirmLoading"> + <j-form-container :disabled="formDisabled"> + <a-form :form="form" slot="detail"> + <a-row> + <a-col :span="24"> + <a-form-item label="浜у搧鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['assignFileStream.productName', validatorRules.productName]" placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�"></a-input> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="閮ㄤ欢鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['assignFileStream.componentName', validatorRules.componentName]" placeholder="璇疯緭鍏ラ儴浠跺悕绉�"></a-input> + </a-form-item> + </a-col> + <a-col :span="24" v-if="part"> + <a-form-item label="闆朵欢鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['assignFileStream.partsName', validatorRules.partsName]" placeholder="璇疯緭鍏ラ浂浠跺悕绉�"></a-input> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="鏂囨。鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['assignFileStream.docName', validatorRules.docName]" placeholder="璇疯緭鍏ユ枃妗e悕绉�"></a-input> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="璁惧鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['assignFileStream.deviceName', validatorRules.deviceName]" placeholder="璇疯緭鍏ヨ澶囧悕绉�"></a-input> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="鏂囨。鐗堟湰" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['assignFileStream.version', validatorRules.version]" placeholder="璇疯緭鍏ユ枃妗g増鏈�"></a-input> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="鐢宠浜�" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['assignFileStream.applyUser', validatorRules.applyUser]" placeholder="璇疯緭鍏ョ敵璇蜂汉"></a-input> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="鐢宠鍘熷洜" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['assignFileStream.applyReason', validatorRules.applyReason]" placeholder="璇疯緭鍏ョ敵璇峰師鍥�"></a-input> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="鐢宠鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['assignFileStream.applyTime', validatorRules.applyTime]" placeholder="璇疯緭鍏ョ敵璇锋椂闂�"></a-input> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="瀹℃壒浜�" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['assignFileStream.approveUser', validatorRules.approveUser]" placeholder="璇疯緭鍏ュ鎵逛汉"></a-input> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="瀹℃壒鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['assignFileStream.approveTime', validatorRules.approveTime]" placeholder="璇疯緭鍏ュ鎵规椂闂�"></a-input> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item label="瀹℃壒鎰忚" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-textarea v-decorator="['assignFileStream.approveContent']" rows="4" placeholder="璇疯緭鍏ュ鎵规剰瑙�"/> + </a-form-item> + </a-col> + <a-col v-if="showFlowSubmitButton" :span="24" style="text-align: center"> + <a-button @click="submitForm">鎻� 浜�</a-button> + </a-col> + </a-row> + </a-form> + </j-form-container> + </a-spin> +</template> + +<script> + + import { httpAction, getAction } from '@/api/manage' + import pick from 'lodash.pick' + import JFormContainer from '@/components/jeecg/JFormContainer' + import JDictSelectTag from "@/components/dict/JDictSelectTag" + + export default { + name: 'AssignApproveUserForm', + components: { + JFormContainer, + JDictSelectTag, + }, + props: { + //娴佺▼琛ㄥ崟data + formData: { + type: Object, + default: ()=>{}, + required: false + }, + //琛ㄥ崟妯″紡锛歵rue娴佺▼琛ㄥ崟 false鏅�氳〃鍗� + formBpm: { + type: Boolean, + default: false, + required: false + }, + //琛ㄥ崟绂佺敤 + disabled: { + type: Boolean, + default: false, + required: false + } + }, + data () { + return { + form: this.$form.createForm(this), + users:"", + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 }, + }, + confirmLoading: false, + validatorRules: { + actName: { + productName: [ + { required: true, message: '璇疯緭鍏ユ祦绋嬪悕绉�!'}, + ] + }, + componentName: { + rules: [ + { required: true, message: '璇烽�夋嫨閮ㄩ棬鍒嗙粍!'}, + ] + }, + partsName: { + rules: [ + { required: true, message: '璇烽�夋嫨瀹℃壒浜�!'}, + ] + }, + docName: { + rules: [ + { required: true, message: '璇疯緭鍏ョ壒娈婂瓧绗�!'}, + ] + }, + deviceName: { + rules: [ + { required: true, message: '璇疯緭鍏ョ壒娈婂瓧绗�!'}, + ] + }, + version: { + rules: [ + { required: true, message: '璇疯緭鍏ョ壒娈婂瓧绗�!'}, + ] + }, + applyUser: { + rules: [ + { required: true, message: '璇疯緭鍏ョ壒娈婂瓧绗�!'}, + ] + }, + applyReason: { + rules: [ + { required: true, message: '璇疯緭鍏ョ壒娈婂瓧绗�!'}, + ] + }, + }, + url: { + add: "/nc/definition/add", + edit: "/nc/definition/edit", + // queryById: "/zhshj/wglltwh/query/by/id" + }, + userOptions:[], + part:false, + } + }, + computed: { + formDisabled(){ + if(this.formBpm===true){ + if(this.formData.disabled===false){ + return false + } + return true + } + return this.disabled + }, + showFlowSubmitButton(){ + if(this.formBpm===true){ + if(this.formData.disabled===false){ + return true + } + } + return false + } + }, + created () { + //濡傛灉鏄祦绋嬩腑琛ㄥ崟锛屽垯闇�瑕佸姞杞芥祦绋嬭〃鍗昫ata + this.showFlowData(); + }, + methods: { + add () { + this.edit({}); + }, + edit (record) { + this.form.resetFields(); + this.model = Object.assign({}, record); + if (record.assignFileStream.partsName){ + this.part=true + } + this.visible = true; + this.$nextTick(() => { + this.form.setFieldsValue(pick(this.model,'assignFileStream')) + }) + }, + getFormFieldValue(field){ + return this.form.getFieldValue(field) + }, + //娓叉煋娴佺▼琛ㄥ崟鏁版嵁 + showFlowData(){ + if(this.formBpm === true){ + let params = {id:this.formData.dataId}; + getAction(this.url.queryById,params).then((res)=>{ + if(res.success){ + this.edit (res.result); + } + }); + } + }, + submitForm () { + const that = this; + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.form.validateFields((err, values) => { + if (!err) { + that.confirmLoading = true; + let httpurl = ''; + let method = ''; + if(!this.model.id){ + httpurl+=this.url.add; + method = 'post'; + }else{ + httpurl+=this.url.edit; + method = 'put'; + } + let formData = Object.assign(this.model, values); + console.log("琛ㄥ崟鎻愪氦鏁版嵁",formData) + httpAction(httpurl,formData,method).then((res)=>{ + if(res.success){ + that.$message.success(res.message); + that.$emit('ok'); + }else{ + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + }) + } + + }) + }, + popupCallback(row){ + this.form.setFieldsValue(pick(row,'C')) + }, + } + } +</script> \ No newline at end of file diff --git a/src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingModal.vue b/src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingModal.vue new file mode 100644 index 0000000..7d2414c --- /dev/null +++ b/src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingModal.vue @@ -0,0 +1,65 @@ +<!-- + Description: 鎴戠殑宸ヤ綔鍙�-浠e姙 Modal + Author: 浣滆�� liuyh + Date: 2025-01-15 +--> +<template> + <j-modal + :title="title" + :width="width" + :visible="visible" + switchFullscreen + @ok="handleOk" + :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" + @cancel="handleCancel" + cancelText="鍏抽棴"> + <WorkUpcomingForm ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></WorkUpcomingForm> + </j-modal> +</template> + +<script> + + import WorkUpcomingForm from './WorkUpcomingForm.vue' + export default { + name: 'AssignApproveUserModal', + components: { + WorkUpcomingForm + }, + 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> \ No newline at end of file diff --git "a/src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingModal__Style\043Drawer.vue" "b/src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingModal__Style\043Drawer.vue" new file mode 100644 index 0000000..358107c --- /dev/null +++ "b/src/views/dnc/base/modules/WorkUpcoming/WorkUpcomingModal__Style\043Drawer.vue" @@ -0,0 +1,91 @@ +<!-- + Description: 鎴戠殑宸ヤ綔鍙�-浠e姙 Modal-Drawer + Author: 浣滆�� liuyh + Date: 2025-01-15 +--> +<template> + <a-drawer + :title="title" + :width="width" + placement="right" + :closable="false" + @close="close" + destroyOnClose + :visible="visible"> + <WorkUpcomingForm ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></WorkUpcomingForm> + <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 WorkUpcomingForm from './WorkUpcomingForm.vue' + +export default { + name: 'AssignApproveUserModal', + components: { + WorkUpcomingForm, + }, + 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> \ No newline at end of file -- Gitblit v1.9.3