| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog :title="titleMap[mode]" v-model="visible" :width="1100" destroy-on-close @closed="$emit('closed')"> |
| | | <el-form :model="form" :rules="rules" :disabled="mode == 'show'" ref="dialogForm" label-width="120px" |
| | | label-position="center" v-if="visible"> |
| | | <el-row> |
| | | <el-col :span="24" style="padding:12px 0;"> |
| | | åºç¡æ°æ® |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æºå¨ç¼å·" prop="machineCode"> |
| | | <el-input style="width: 240px" disabled v-model="form.machineCode" |
| | | placeholder="ä¿åæ¶ç³»ç»èªå¨çæ"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="çç¼å·" prop="shortCode"> |
| | | <el-input style="width: 240px" v-model="form.shortCode" placeholder="çç¼å·" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æºå¨PINç " prop="pinCode"> |
| | | <el-input style="width: 240px" v-model="form.pinCode" placeholder="æºå¨PINç " clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æºå¨åç§°" prop="machineName"> |
| | | <el-input style="width: 240px" v-model="form.machineName" placeholder="æºå¨åç§°" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æºå¨ç±»å" prop="machineTypeId"> |
| | | <el-select v-model="form.machineTypeId" placeholder="" style="width: 240px"> |
| | | <el-option v-for="item in options.machineTypeId" :key="item.value" :label="item.label" |
| | | :value="item.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æºå¨åºåå·" prop="serialNo"> |
| | | <el-input style="width: 240px" v-model="form.serialNo" placeholder="æºå¨åºåå·" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="产å°å½å«" prop="countryOfManufacture"> |
| | | <el-input style="width: 240px" v-model="form.countryOfManufacture" placeholder="产å°å½å«" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="çå½ç¶æ" prop="machineLifeStatus"> |
| | | <el-select v-model="form.machineLifeStatus" placeholder="" style="width: 240px"> |
| | | <el-option v-for="item in options.machineLifeStatus" :key="item.value" :label="item.label" |
| | | :value="item.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="çµå(v)" prop="voltage"> |
| | | <el-input style="width: 240px" v-model="form.voltage" placeholder="ä¿ç2ä½å°æ°" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æºå¨è§æ ¼" prop="machineModel"> |
| | | <el-input style="width: 240px" v-model="form.machineModel" placeholder="æºå¨è§æ ¼" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="è½®å»å°ºå¯¸(cm)" prop="dimensions"> |
| | | <el-input style="width: 240px" v-model="form.dimensions" placeholder="ä¿ç2ä½å°æ°" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="åé(kg)" prop="netWeight"> |
| | | <el-input style="width: 240px" v-model="form.netWeight" placeholder="ä¿ç2ä½å°æ°" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="åç(kw)" prop="power"> |
| | | <el-input style="width: 240px" v-model="form.power" placeholder="ä¿ç2ä½å°æ°" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="ç³»ç»åç§°" prop="systemName"> |
| | | <el-input style="width: 240px" v-model="form.systemName" placeholder="ç³»ç»åç§°" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æºå¨åç" prop="brand"> |
| | | <el-input style="width: 240px" v-model="form.brand" placeholder="æºå¨åç" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æºå¨éç" prop="nameplate"> |
| | | <el-input style="width: 240px" v-model="form.nameplate" placeholder="æºå¨éç" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="è½¯ä»¶çæ¬" prop="softwareVersion"> |
| | | <el-input style="width: 240px" v-model="form.softwareVersion" placeholder="è½¯ä»¶çæ¬" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æå±æºå¨ç»" prop="groupId"> |
| | | <!-- <el-input style="width: 240px" v-model="form.groupId" placeholder="æå±æºå¨ç»" clearable></el-input> --> |
| | | <el-tree-select v-model="form.groupId" node-key="id" :props="props" :data="options.groupId" |
| | | filterable style="width: 240px" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="工使¹å¼" prop="linkWay"> |
| | | <el-checkbox v-model="form.linkWay" label="å建ååå·¥ä½" :true-value="1" :false-value="2" |
| | | :true-label="1" :false-label="2" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å·¥ä½ç¼å·" prop="workstationId"> |
| | | <el-input style="width: 240px" v-model="form.workstationId" placeholder="æªç»å®" |
| | | disabled></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å·¥ä½åç§°" prop="code"> |
| | | <el-input style="width: 240px" v-model="form.code" placeholder="æªç»å®" disabled></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select v-model="form.status" placeholder="" style="width: 240px"> |
| | | <el-option v-for="item in options.status" :key="item.value" :label="item.label" |
| | | :value="item.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24" style="padding:12px 0;"> |
| | | èµäº§ä¿¡æ¯ |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å票éé¢" prop="invoiceValue"> |
| | | <el-input style="width: 240px" v-model="form.invoiceValue" placeholder="ä¿ç2ä½å°æ°" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="èµäº§åå¼" prop="ovfa"> |
| | | <el-input style="width: 240px" v-model="form.ovfa" placeholder="ä¿ç2ä½å°æ°" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="ææ§å¹´é" prop="depreciationYear"> |
| | | <el-input style="width: 240px" v-model="form.depreciationYear" placeholder="ææ§å¹´é" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="èµäº§åå¼" prop="netAssetValue"> |
| | | <el-input style="width: 240px" v-model="form.netAssetValue" placeholder="ä¿ç2ä½å°æ°" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="èµäº§ç¼å·" prop="assetsCode"> |
| | | <el-input style="width: 240px" v-model="form.assetsCode" placeholder="èµäº§ç¼å·" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="çäº§æ¥æ" prop="productionTime"> |
| | | <el-date-picker style="width: 240px" v-model="form.productionTime" type="date" |
| | | placeholder="çäº§æ¥æ" clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="äº¤ä»æ¥æ" prop="deliveryTime"> |
| | | <el-date-picker style="width: 240px" v-model="form.deliveryTime" type="date" placeholder="äº¤ä»æ¥æ" |
| | | clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å¶é åå" prop="manufacturer"> |
| | | <el-input style="width: 240px" v-model="form.manufacturer" placeholder="å¶é åå" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24" style="padding:12px 0;"> |
| | | åæ¾ä¿¡æ¯ |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="åºåæ¡£æ¡" prop="factoryFile"> |
| | | <el-input style="width: 240px" v-model="form.factoryFile" placeholder="åºåæ¡£æ¡" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="åºåç¼å·" prop="factoryNo"> |
| | | <el-input style="width: 240px" v-model="form.factoryNo" placeholder="åºåç¼å·" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å®è£
ä½ç½®" prop="installationLocation"> |
| | | <el-input style="width: 240px" v-model="form.installationLocation" placeholder="å®è£
ä½ç½®" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="è½¬åºæ¥æ" prop="turnToFixedAssetsTime"> |
| | | <el-date-picker style="width: 240px" v-model="form.turnToFixedAssetsTime" type="date" |
| | | placeholder="è½¬åºæ¥æ" clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="管çç级" prop="managementClass"> |
| | | <el-input style="width: 240px" v-model="form.managementClass" placeholder="管çç级" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="使ç¨é¨é¨" prop="organizationId"> |
| | | <el-tree-select v-model="form.organizationId" node-key="id" :props="props" |
| | | :data="options.organizationId" filterable style="width: 240px" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="ç产线" prop="productionLine"> |
| | | <el-input style="width: 240px" v-model="form.productionLine" placeholder="ç产线" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="ç¹ç§è®¾å¤" prop="elaborateEquipment"> |
| | | <el-select v-model="form.elaborateEquipment" placeholder="" style="width: 240px"> |
| | | <el-option v-for="item in options.elaborateEquipment" :key="item.value" :label="item.label" |
| | | :value="item.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="使ç¨ç¶æ" prop="machineUseStatus"> |
| | | <el-select v-model="form.machineUseStatus" placeholder="" style="width: 240px"> |
| | | <el-option v-for="item in options.machineUseStatus" :key="item.value" :label="item.label" |
| | | :value="item.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="责任人" prop="employeeId"> |
| | | <!-- <el-input style="width: 240px" v-model="form.employeeId" placeholder="责任人" clearable></el-input> --> |
| | | <el-tree-select v-model="form.employeeId" node-key="id" :props="props" |
| | | :data="options.employeeId" filterable style="width: 240px" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input style="width: 240px" v-model="form.remark" placeholder="夿³¨" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <template #footer> |
| | | <el-button @click="visible = false">å æ¶</el-button> |
| | | <el-button v-if="mode != 'show'" type="primary" :loading="isSaveing" @click="submit()">ä¿ å</el-button> |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | const validator = (rule, value, callback) => { |
| | | if (!value) { |
| | | return callback(); |
| | | } |
| | | if (!/^(\d+|\d+\.\d{1,2})$/.test(value)) { |
| | | callback(new Error('è¯·ç¡®ä¿æ¯ææç两ä½å°æ°æ°å')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | } |
| | | export default { |
| | | emits: ['success', 'closed'], |
| | | components: { |
| | | }, |
| | | props: { |
| | | option: { |
| | | type: Object |
| | | }, |
| | | detail: { |
| | | type: Object |
| | | } |
| | | }, |
| | | watch: { |
| | | |
| | | }, |
| | | computed: { |
| | | }, |
| | | data() { |
| | | return { |
| | | props: { |
| | | label: 'name', |
| | | }, |
| | | options: { |
| | | machineTypeId: [], |
| | | machineLifeStatus: [], |
| | | elaborateEquipment: [ |
| | | { |
| | | label: 'æ¯', |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: 'å¦', |
| | | value: 0 |
| | | } |
| | | ], |
| | | status: [ |
| | | { |
| | | label: 'å¯ç¨', |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: 'åç¨', |
| | | value: 0 |
| | | } |
| | | ], |
| | | machineUseStatus: [], |
| | | employeeId: [], |
| | | groupId: [], |
| | | organizationId: [] |
| | | }, |
| | | mode: "add", |
| | | titleMap: { |
| | | add: 'æ°å»ºæºå¨å°è´¦', |
| | | edit: 'ç¼è¾æºå¨å°è´¦', |
| | | // show: 'æ¥ç' |
| | | }, |
| | | visible: false, |
| | | isSaveing: false, |
| | | //è¡¨åæ°æ® |
| | | form: { |
| | | machineCode: '', |
| | | shortCode: '', |
| | | pinCode: '', |
| | | machineName: '', |
| | | machineTypeId: '', |
| | | serialNo: '', |
| | | countryOfManufacture: '', |
| | | machineLifeStatus: '', |
| | | voltage: '', |
| | | machineModel: '', |
| | | dimensions: '', |
| | | netWeight: '', |
| | | power: '', |
| | | systemName: '', |
| | | brand: '', |
| | | nameplate: '', |
| | | softwareVersion: '', |
| | | groupId: '', |
| | | linkWay: '', |
| | | machineCode: '', |
| | | workstationId: '', |
| | | code: '', |
| | | status: '', |
| | | invoiceValue: '', |
| | | ovfa: '', |
| | | depreciationYear: '', |
| | | netAssetValue: '', |
| | | assetsCode: '', |
| | | productionTime: '', |
| | | deliveryTime: '', |
| | | manufacturer: '', |
| | | factoryFile: '', |
| | | factoryNo: '', |
| | | installationLocation: '', |
| | | turnToFixedAssetsTime: '', |
| | | managementClass: '', |
| | | organizationId: '', |
| | | productionLine: '', |
| | | elaborateEquipment: '', |
| | | machineUseStatus: '', |
| | | employeeId: '', |
| | | remark: '', |
| | | }, |
| | | //éªè¯è§å |
| | | rules: { |
| | | machineName: [ |
| | | { required: true, message: '' } |
| | | ], |
| | | status: [ |
| | | { required: true, message: '' } |
| | | ], |
| | | shortCode: [ |
| | | { |
| | | validator: (rule, value, callback) => { |
| | | if (!value) { |
| | | return callback(); |
| | | } |
| | | if (!/^[a-zA-Z0-9]{4,8}$/.test(value)) { |
| | | callback(new Error('请è¾å
¥ 4-8 è±æï¼æ°å')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }, message: '请è¾å
¥ 4-8 è±æï¼æ°å', trigger: 'change', |
| | | } |
| | | ], |
| | | pinCode: [ |
| | | { |
| | | validator: (rule, value, callback) => { |
| | | if (!value) { |
| | | return callback(); |
| | | } |
| | | if (!/^[a-zA-Z0-9]{4,6}$/.test(value)) { |
| | | callback(new Error('请è¾å
¥ 4-6 è±æï¼æ°å')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }, message: '请è¾å
¥ 4-6 è±æï¼æ°å', trigger: 'change', |
| | | } |
| | | ], |
| | | voltage: [ |
| | | { |
| | | validator, message: 'ä¿ç2ä½å°æ°', trigger: 'change', |
| | | } |
| | | ], |
| | | dimensions: [ |
| | | { |
| | | validator, message: 'ä¿ç2ä½å°æ°', trigger: 'change', |
| | | } |
| | | ], |
| | | netWeight: [ |
| | | { |
| | | validator, message: 'ä¿ç2ä½å°æ°', trigger: 'change', |
| | | } |
| | | ], |
| | | power: [ |
| | | { |
| | | validator, message: 'ä¿ç2ä½å°æ°', trigger: 'change', |
| | | } |
| | | ], |
| | | invoiceValue: [ |
| | | { |
| | | validator, message: 'ä¿ç2ä½å°æ°', trigger: 'change', |
| | | } |
| | | ], |
| | | ovfa: [ |
| | | { |
| | | validator, message: 'ä¿ç2ä½å°æ°', trigger: 'change', |
| | | } |
| | | ], |
| | | netAssetValue: [ |
| | | { |
| | | validator, message: 'ä¿ç2ä½å°æ°', trigger: 'change', |
| | | } |
| | | ], |
| | | }, |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | this.init() |
| | | }, |
| | | methods: { |
| | | init() { |
| | | this.$HTTP.get('/api/blade-system/dict/dictionary?code=machine_life_state').then(res => { |
| | | if (res.code === 200) { |
| | | this.options.machineLifeStatus = res.data.map(item => ({ |
| | | label: item.dictValue, |
| | | value: item.dictKey |
| | | })) |
| | | } |
| | | }) |
| | | this.$HTTP.get('/api/blade-system/dict/dictionary?code=machine_use_state').then(res => { |
| | | if (res.code === 200) { |
| | | this.options.machineUseStatus = res.data.map(item => ({ |
| | | label: item.dictValue, |
| | | value: item.dictKey |
| | | })) |
| | | } |
| | | }) |
| | | this.$HTTP.get('/api/blade-cps/device-types/page?keyWord=¤t=1&size=-1').then(res => { |
| | | if (res.code === 200) { |
| | | this.options.machineTypeId = res.data.records.map(item => ({ |
| | | label: item.name, |
| | | value: item.id |
| | | })) |
| | | } |
| | | }) |
| | | this.$HTTP.get('/api/blade-cps/employee/tree').then(res => { |
| | | if (res.code === 200) { |
| | | this.options.employeeId = res.data |
| | | } |
| | | }) |
| | | this.$HTTP.get('/api/blade-cps/group/tree?groupCategory=1&groupType=group_machine').then(res => { |
| | | if (res.code === 200) { |
| | | this.options.groupId = res.data |
| | | } |
| | | }) |
| | | this.$HTTP.get('/api/blade-cps/organization/tree?groupType=group_organization&groupCategory=1').then(res => { |
| | | if (res.code === 200) { |
| | | this.options.organizationId = res.data |
| | | } |
| | | }) |
| | | }, |
| | | //æ¾ç¤º |
| | | open(mode = 'add', params) { |
| | | this.mode = mode; |
| | | this.$nextTick(() => { |
| | | this.visible = true; |
| | | }) |
| | | Object.keys(this.form).forEach(item => { |
| | | this.form[item] = '' |
| | | }) |
| | | if (params.id) { |
| | | this.$HTTP.get(`/api/blade-cps/machine/detail/${params.id}`).then(res => { |
| | | if (res.code === 200) { |
| | | this.form = { |
| | | ...this.form, |
| | | ...res.data |
| | | } |
| | | } |
| | | }) |
| | | } else { |
| | | this.form = { |
| | | ...this.form, |
| | | ...params |
| | | } |
| | | } |
| | | |
| | | return this |
| | | }, |
| | | //表åæäº¤æ¹æ³ |
| | | submit() { |
| | | this.$refs.dialogForm.validate(async (valid) => { |
| | | if (valid) { |
| | | this.isSaveing = true; |
| | | let data = { |
| | | ...this.form |
| | | } |
| | | let res |
| | | try { |
| | | if (this.form.id) { |
| | | res = await this.$HTTP.put('/api/blade-cps/machine', data).catch(() => { |
| | | throw new Error() |
| | | }) |
| | | } else { |
| | | res = await this.$HTTP.post('/api/blade-cps/machine', data).catch(() => { |
| | | throw new Error() |
| | | }) |
| | | } |
| | | } catch (error) { |
| | | this.isSaveing = false; |
| | | } |
| | | |
| | | this.isSaveing = false; |
| | | if (res.code == 200) { |
| | | this.$emit('success', this.form, this.mode) |
| | | this.visible = false; |
| | | this.$message.success("æä½æå") |
| | | } else { |
| | | this.$alert(res.message, "æç¤º", { type: 'error' }) |
| | | } |
| | | } else { |
| | | return false; |
| | | } |
| | | }) |
| | | }, |
| | | //è¡¨åæ³¨å
¥æ°æ® |
| | | setData(data) { |
| | | |
| | | //å¯ä»¥åä¸é¢ä¸æ ·å个注å
¥ï¼ä¹å¯ä»¥åä¸é¢ä¸æ ·ç´æ¥åå¹¶è¿å» |
| | | //Object.assign(this.form, data) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style></style> |