| | |
| | | <template> |
| | | <j-modal |
| | | :title="title" |
| | | :width="800" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | switchFullscreen |
| | | @ok="handleOk" |
| | | @cancel="handleCancel" |
| | | cancelText="关闭"> |
| | | |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules"> |
| | | |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag" label="删除标记"> |
| | | <a-input-number v-model="model.delFlag"/> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="changeOrderNum" label="变更单号"> |
| | | <a-input placeholder="请输入变更单号" v-model="model.changeOrderNum" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="changeStatus" label="变更单状态"> |
| | | <a-input placeholder="请输入变更单状态" v-model="model.changeStatus" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="designer" label="编制人"> |
| | | <a-input placeholder="请输入编制人" v-model="model.designer" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="designerTime" label="编制时间"> |
| | | <a-input placeholder="请输入编制时间" v-model="model.designerTime" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departHeaderSignature" label="使用单位室主管签字"> |
| | | <a-input placeholder="请输入使用单位室主管签字" v-model="model.departHeaderSignature" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departHeaderSignatureTime" label="使用单位室主管签字时间"> |
| | | <a-input placeholder="请输入使用单位室主管签字时间" v-model="model.departHeaderSignatureTime" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departHeaderSignatureComment" label="使用单位室主管意见"> |
| | | <a-input placeholder="请输入使用单位室主管意见" v-model="model.departHeaderSignatureComment" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departLeaderSignature" label="使用单位部主管签字"> |
| | | <a-input placeholder="请输入使用单位部主管签字" v-model="model.departLeaderSignature" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departLeaderSignatureTime" label="使用单位部主管签字时间"> |
| | | <a-input placeholder="请输入使用单位部主管签字时间" v-model="model.departLeaderSignatureTime" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departLeaderSignatureComment" label="使用单位部主管签字"> |
| | | <a-input placeholder="请输入使用单位部主管签字" v-model="model.departLeaderSignatureComment" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCode" label="HF编码"> |
| | | <a-input placeholder="请输入HF编码" v-model="model.hfCode" /> |
| | | </a-form-model-item> |
| | | |
| | | </a-form-model> |
| | | <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen |
| | | @ok="handleOk" @cancel="handleCancel" cancelText="关闭"> |
| | | <a-spin :spinning="spinning"> |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <a-row> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="变更单号"> |
| | | <a-input placeholder="系统自动生成" v-model="model.changeOrderNum" disabled/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="8"> |
| | | <a-form-model-item label="申请单位" prop="factoryOrgCode"> |
| | | <a-tree-select v-model="model.factoryOrgCode" :tree-data="productionTreeData" |
| | | @change="detail.dataSource=[]" |
| | | show-search :replaceFields="{key:'orgCode',value:'orgCode'}" |
| | | treeNodeFilterProp="title" searchPlaceholder="请输入关键字搜索" |
| | | :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="请选择申请单位" |
| | | allow-clear tree-default-expand-all :allow-clear="false"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="备注" :labelCol="{span:2}" :wrapperCol="{span:20}"> |
| | | <a-textarea placeholder="请输入备注" v-model="model.remark"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form-model> |
| | | </div> |
| | | |
| | | <j-vxe-table ref="editableDetailTable" rowNumber rowSelection bordered alwaysEdit toolbar |
| | | v-if="model.factoryOrgCode" |
| | | :toolbarConfig="detail.toolbarConfig" keep-source :height="300" |
| | | :dataSource="detail.dataSource" :columns="detail.columns"> |
| | | <!--统一编码--> |
| | | <template v-slot:equipmentId="props"> |
| | | <lx-search-equipment-select v-model="props.row.equipmentId" placeholder="请输入统一编码或名称搜索" |
| | | :factoryOrgCode="model.factoryOrgCode" |
| | | @autocompleteForm="autocompleteForm($event,props.row)" :allowClear="false"/> |
| | | </template> |
| | | |
| | | <!-- 保养日期--> |
| | | <template v-slot:changeDate="props"> |
| | | <a-date-picker v-model="props.row.changeDate" value-format="YYYY-MM-DD" :allow-clear="false"/> |
| | | </template> |
| | | |
| | | <!-- 操作--> |
| | | <template v-slot:action="props"> |
| | | <a :disabled="!props.row.equipmentId" @click="handlePreviewDetail(props.row.standardId)">预览明细</a> |
| | | </template> |
| | | </j-vxe-table> |
| | | </a-spin> |
| | | </j-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { httpAction } from '@/api/manage' |
| | | import moment from "moment" |
| | | import { httpAction, getAction } from '@/api/manage' |
| | | import { JVXETypes } from '@comp/jeecg/JVxeTable' |
| | | import LxSearchEquipmentSelect from '../../equipment/modules/LxSearchEquipmentSelect' |
| | | |
| | | export default { |
| | | name: "EamTechnicalStatusChangeModal", |
| | | data () { |
| | | name: 'EamTechnicalStatusChangeModal', |
| | | components: { LxSearchEquipmentSelect }, |
| | | props: { |
| | | productionTreeData: { |
| | | type: Array |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | title:"操作", |
| | | title: '操作', |
| | | visible: false, |
| | | model: {}, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 }, |
| | | sm: { span: 6 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 }, |
| | | sm: { span: 18 } |
| | | }, |
| | | |
| | | confirmLoading: false, |
| | | validatorRules:{ |
| | | spinning: false, |
| | | validatorRules: { |
| | | factoryOrgCode: [{ required: true, message: '请选择申请单位', trigger: 'change' }] |
| | | }, |
| | | detail: { |
| | | dataSource: [], |
| | | columns: [ |
| | | { |
| | | title: 'ID', |
| | | key: 'id', |
| | | type: JVXETypes.hidden |
| | | }, |
| | | { |
| | | title: '统一编码', |
| | | key: 'equipmentId', |
| | | align: 'center', |
| | | type: JVXETypes.slot, |
| | | slotName: 'equipmentId', |
| | | width: 250, |
| | | validateRules: [ |
| | | { required: true, message: '请输入${title}或名称搜索' }, |
| | | { unique: true, message: '${title}不能重复' } |
| | | ] |
| | | }, |
| | | { |
| | | title: '设备名称', |
| | | key: 'equipmentName', |
| | | align: 'center', |
| | | type: JVXETypes.normal, |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: '设备型号', |
| | | key: 'equipmentModel', |
| | | align: 'center', |
| | | type: JVXETypes.normal, |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: '使用单位', |
| | | key: 'factoryName', |
| | | align: 'center', |
| | | type: JVXETypes.normal, |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: '变更原因', |
| | | key: 'changeCategory', |
| | | align: 'center', |
| | | dictCode: 'technical_status_change_reason', |
| | | type: JVXETypes.select, |
| | | width: 200, |
| | | placeholder: '请选择${title}', |
| | | validateRules: [{ required: true, message: '请选择${title}' }] |
| | | }, |
| | | { |
| | | title: '变更日期', |
| | | key: 'changeDate', |
| | | align: 'center', |
| | | type: JVXETypes.slot, |
| | | width: 200, |
| | | slotName: 'changeDate', |
| | | validateRules: [{ required: true, message: '请选择${title}' }] |
| | | }, |
| | | { |
| | | title: '变更后技术状态', |
| | | key: 'changeTechnicalStatus', |
| | | align: 'center', |
| | | dictCode: 'equipment_technology_status', |
| | | type: JVXETypes.select, |
| | | width: 220, |
| | | placeholder: '请选择${title}', |
| | | validateRules: [{ required: true, message: '请选择${title}' }] |
| | | } |
| | | ], |
| | | toolbarConfig: { |
| | | // prefix 前缀;suffix 后缀 |
| | | slot: ['prefix', 'suffix'], |
| | | // add 新增按钮;remove 删除按钮;clearSelection 清空选择按钮 |
| | | btn: ['add', 'remove', 'clearSelection'] |
| | | } |
| | | }, |
| | | url: { |
| | | add: "/eam/eamTechnicalStatusChange/add", |
| | | edit: "/eam/eamTechnicalStatusChange/edit", |
| | | }, |
| | | add: '/eam/eamTechnicalStatusChange/add', |
| | | edit: '/eam/eamTechnicalStatusChange/edit', |
| | | detail: '/eam/eamTechnicalStatusChangeDetail/queryList' |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | }, |
| | | methods: { |
| | | add () { |
| | | add() { |
| | | //初始化默认值 |
| | | this.edit({}); |
| | | this.edit({}) |
| | | }, |
| | | edit (record) { |
| | | this.model = Object.assign({}, record); |
| | | this.visible = true; |
| | | |
| | | edit(record) { |
| | | this.model = Object.assign({}, record) |
| | | this.visible = true |
| | | if (record.id) this.loadDetail(record.id) |
| | | }, |
| | | close () { |
| | | this.$emit('close'); |
| | | this.visible = false; |
| | | this.$refs.form.clearValidate(); |
| | | |
| | | /** |
| | | * 获取设备明细 |
| | | * @param orderId |
| | | */ |
| | | loadDetail(orderId) { |
| | | this.spinning = true |
| | | this.detail.dataSource = [] |
| | | getAction(this.url.detail, { orderId }) |
| | | .then(res => { |
| | | console.log('res', res) |
| | | if (res.success) this.detail.dataSource = res.result |
| | | }) |
| | | .finally(() => { |
| | | this.spinning = false |
| | | }) |
| | | }, |
| | | handleOk () { |
| | | const that = this; |
| | | |
| | | autocompleteForm(selectObj, record) { |
| | | record.factoryName = selectObj.factoryOrgCode_dictText |
| | | record.equipmentName = selectObj.equipmentName |
| | | record.equipmentModel = selectObj.equipmentModel |
| | | record.changeTechnicalStatus = 'PROHIBITED' |
| | | }, |
| | | |
| | | async handleOk() { |
| | | const tableData = this.$refs.editableDetailTable.getTableData() |
| | | if (tableData.length == 0) { |
| | | this.$notification.warning({ |
| | | message: '消息', |
| | | description: '请至少新增一条记录' |
| | | }) |
| | | return |
| | | } |
| | | |
| | | const errMap = await this.$refs.editableDetailTable.validateTable() |
| | | if (errMap) return |
| | | |
| | | const that = this |
| | | // 触发表单验证 |
| | | this.$refs.form.validate(valid => { |
| | | 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'; |
| | | that.confirmLoading = that.spinning = 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; |
| | | that.close(); |
| | | }) |
| | | }else{ |
| | | return false; |
| | | that.model.tableDetailList = this.$refs.editableDetailTable.getTableData() |
| | | httpAction(httpUrl, this.model, method) |
| | | .then((res) => { |
| | | if (res.success) { |
| | | that.$notification.success({ |
| | | message: '消息', |
| | | description: res.message |
| | | }) |
| | | that.$emit('ok') |
| | | that.close() |
| | | } else { |
| | | that.$notification.warning({ |
| | | message: '消息', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | that.confirmLoading = that.spinning = false |
| | | }) |
| | | } else { |
| | | return false |
| | | } |
| | | }) |
| | | }, |
| | | handleCancel () { |
| | | |
| | | handleCancel() { |
| | | this.close() |
| | | }, |
| | | |
| | | close() { |
| | | this.$emit('close') |
| | | this.visible = false |
| | | this.$refs.form.clearValidate() |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | |
| | | /deep/ .ant-select-dropdown-menu { |
| | | text-align: left; |
| | | } |
| | | </style> |