Merge remote-tracking branch 'origin/master'
# Conflicts:
# vue.config.js
| | |
| | | } |
| | | |
| | | |
| | | export function fetchCapabilityForOperation() { |
| | | return request({ |
| | | url: '/mes/capability/all', |
| | | method: 'get' |
| | | }) |
| | | } |
| | | // export function fetchCapabilityForOperation() { |
| | | // return request({ |
| | | // url: '/mes/capability/all', |
| | | // method: 'get' |
| | | // }) |
| | | // } |
| | | |
| | | |
| | | export function getByOperation(id) { |
| | |
| | | export function downloadProcessConfigFile(filename, bucket, originalFileName) { |
| | | return request({ |
| | | url: '/mes/plan/customerOrder/processConfig/' + bucket + '/' + filename, |
| | | method: 'get', |
| | | method: 'post', |
| | | responseType: 'blob' |
| | | }).then((response) => { |
| | | // 处理返回的文件流 |
| | |
| | | // 作废 |
| | | export function dropByContractNo(contractNo) { |
| | | return request({ |
| | | url: '/mes/plan/customerOrder/dropByContractNo/' + contractNo, |
| | | method: 'get' |
| | | url: '/mes/plan/customerOrder/dropByContractNo', |
| | | method: 'get', |
| | | params: contractNo |
| | | }) |
| | | } |
| | |
| | | $mainBg: #409eff; |
| | | |
| | | /* 改变主题色变量 */ |
| | | $--color-primary: #006eff; |
| | | $--color-primary: #875a7b; |
| | | |
| | | /* 改变 icon 字体路径变量,必需 */ |
| | | $--font-path: '~element-ui/lib/theme-chalk/fonts'; |
| | |
| | | { |
| | | minWidth: '100', |
| | | width: '100px', |
| | | prop: 'customerOrderNo', |
| | | prop: 'contractNo', |
| | | label: '客户订单号', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'customerNo', |
| | | label: '客户编号', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'customerNo', |
| | | // label: '客户编号', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text' |
| | | // }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'customerName', |
| | |
| | | return this.coStateList |
| | | } |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'coLineNo', |
| | | label: '行号', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'coLineNo', |
| | | // label: '行号', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text' |
| | | // }, |
| | | { |
| | | minWidth: '120', |
| | | width: '100px', |
| | |
| | | { |
| | | minWidth: '120', |
| | | width: '100px', |
| | | prop: 'partName', |
| | | prop: 'productName', |
| | | label: '零件名称', |
| | | sort: true, |
| | | isTrue: true, |
| | |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'requireNumber', |
| | | prop: 'buyQtyDue', |
| | | label: '已下发数量', |
| | | sort: true, |
| | | isTrue: true, |
| | |
| | | }, |
| | | { |
| | | minWidth: '80', |
| | | prop: 'unit', |
| | | prop: 'otcUnit', |
| | | label: '零件单位', |
| | | sort: true, |
| | | isTrue: true, |
| | |
| | | { |
| | | minWidth: '140', |
| | | width: '120', |
| | | prop: 'wantedDeliveryDate', |
| | | label: '期望交货时间', |
| | | prop: 'deliveryDate', |
| | | label: '交货时间', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'datetimerange', |
| | | formatter: this.formatDutyDate |
| | | }, |
| | | { |
| | | minWidth: '200', |
| | | width: '120', |
| | | prop: 'plannedDeliveryDate', |
| | | label: '计划交货时间', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'datetimerange', |
| | | formatter: this.formatDutyDate |
| | | }, |
| | | // { |
| | | // minWidth: '200', |
| | | // width: '120', |
| | | // prop: 'plannedDeliveryDate', |
| | | // label: '计划交货时间', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'datetimerange', |
| | | // formatter: this.formatDutyDate |
| | | // }, |
| | | { |
| | | minWidth: '200', |
| | | width: '120', |
| | |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openSalesPartDialog()" |
| | | v-show="dataForm.id" |
| | | v-show="dataForm.id==null" |
| | | ></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | |
| | | </el-button> |
| | | <el-dropdown-menu slot="dropdown"> |
| | | <el-dropdown-item |
| | | :key="index" |
| | | :command="item.command" |
| | | v-for="item in documentTagArr" |
| | | v-for="(item,index) in documentTagArr" |
| | | :disabled="item.disabled"> |
| | | {{ item.label }} |
| | | </el-dropdown-item> |
| | |
| | | </el-button> |
| | | <el-dropdown-menu slot="dropdown"> |
| | | <el-dropdown-item |
| | | :key="index" |
| | | :command="item.command" |
| | | v-for="item in commitStateTagArr" |
| | | v-for="(item,index) in commitStateTagArr" |
| | | :disabled="item.disabled" |
| | | >{{ item.label }}</el-dropdown-item |
| | | > |
| | |
| | | @click="()=>exportDialogVisible=true" |
| | | >导出台账</el-button |
| | | > |
| | | <el-button |
| | | <!-- <el-button |
| | | v-if="permissions.plan_customerorder_return" |
| | | style="margin-left:10px;" |
| | | type="primary" |
| | | @click="returnOrder" |
| | | >订单退回</el-button |
| | | > |
| | | > --> |
| | | </template> |
| | | </ttable> |
| | | |
| | |
| | | }, |
| | | // 作废 |
| | | cancelHandle(row) { |
| | | this.$confirm('是否确认作废销售订单号为' + row.customerOrderNo + '提示', { |
| | | this.$confirm('确认作废id为【' + row.id + '】的数据?','提示' , { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | closeOnClickModal: false, |
| | | type: 'warning' |
| | | }).then(() => { |
| | | dropByContractNo(row.customerOrderNo).then((res) => { |
| | | dropByContractNo({id:row.id}).then((res) => { |
| | | if (res.data.code === 0) { |
| | | this.$message.success('作废成功') |
| | | this.getData() |
| | |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="业务员" prop="salesMan"> |
| | | <el-select @change="selsctionSales" v-model="salesSelectData" style="width:100%"> |
| | | <el-option v-for="(item,index) in staffOptions" :key="index" :value="item" :label="item.staffName"/> |
| | | <el-select @change="selsctionSales" filterable v-model="salesSelectData" style="width:100%"> |
| | | <el-option v-for="(item,index) in staffOptions" :key="index" :value="item.staffNo+','+item.staffName" :label="item.staffName"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | import { addObj } from '@/api/plan/customer' |
| | | import { remote } from '@/api/admin/dict' |
| | | import PartDialog from '@/views/common/part.vue' |
| | | import { validateSixDecimal } from '@/util/validate' |
| | | import {dateFormat} from '@/util/date' |
| | | import { chooseStaff } from '@/api/admin/productType' |
| | | import { tableOption } from '@/const/crud/customerOrder/customerOrderForm' |
| | |
| | | export default { |
| | | components: { |
| | | PartDialog |
| | | }, |
| | | watch:{ |
| | | visible(newVal){ |
| | | if(!newVal){ |
| | | this.tableData = [{ |
| | | "$cellEdit": true, |
| | | "$index": 0, |
| | | "partNo": "", |
| | | "customerPartSpec": "", |
| | | "manufactureAttr": "", |
| | | "productName": "", |
| | | "productType": "", |
| | | "otcUnit": "", |
| | | "buyQtyDue": "", |
| | | "shippingAddress": "", |
| | | "remark": "", |
| | | "isTrusted": true |
| | | }] |
| | | } |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | }, |
| | | methods: { |
| | | selsctionSales(data){ |
| | | this.dataForm.salesMan = data.staffName |
| | | this.dataForm.salerWorkCode = data.staffNo |
| | | if(data){ |
| | | let arr = data.split(",") |
| | | this.dataForm.salesMan = arr[1] |
| | | this.dataForm.salerWorkCode = arr[0] |
| | | } |
| | | }, |
| | | getStaffOptions(){ |
| | | chooseStaff().then((response)=>{ |
| | |
| | | <el-form-item>{{ scope.row.buyQtyDue }}</el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | header-align="center" |
| | | align="center" |
| | | label="已计划数量" |
| | |
| | | <template slot-scope="scope"> |
| | | <el-form-item>{{ scope.row.requireNumber }}</el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | prop="remainderRequired" |
| | | header-align="center" |
| | |
| | | width="170px" |
| | | > |
| | | <template scope="scope"> |
| | | <el-form-item |
| | | <el-form-item>{{ scope.row.qtyPlaned }}</el-form-item> |
| | | <!-- <el-form-item |
| | | :prop="'customer.' + scope.$index" |
| | | :rules="rules.qtyPlaned" |
| | | > |
| | | <el-input |
| | | v-model="scope.row.qtyPlaned" |
| | | placeholder="" |
| | | ></el-input> |
| | | ></el-input> --> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | this.dataForm.customer = [] |
| | | const _that = this |
| | | customer.forEach((item) => { |
| | | console.log(item); |
| | | item.qtyPlaned=item.buyQtyDue |
| | | const outPutBatchList = [] |
| | | _that.$set(item, 'outPutBatchList', outPutBatchList) |
| | | customerList.push(item) |
| | | }) |
| | | this.dataForm.customer = JSON.parse(JSON.stringify(customerList)) |
| | | console.log(this.dataForm.customer); |
| | | }) |
| | | // this.dataForm.forEach(item=>{ |
| | | // console.log(1111); |
| | | // console.log("循环",item); |
| | | // item.qtyPlaned=item.buyQtyDue |
| | | // }) |
| | | console.log("data",this.dataForm); |
| | | }, |
| | | dataFormSubmit() { |
| | | this.isSubmit = true |
| | | this.$refs.dataForm.validate((valid) => { |
| | | if (valid) { |
| | | // console.log(this.dataForm); |
| | | // return |
| | | checkSchedule(this.dataForm.customer) |
| | | .then((res) => { |
| | | if (res.data.data.success) { |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="客户订单号" prop="customerOrderNo"> |
| | | <el-form-item label="客户订单号" prop="contractNo"> |
| | | <el-input |
| | | v-model="dataForm.customerOrderNo" |
| | | v-model="dataForm.contractNo" |
| | | placeholder="" |
| | | :disabled="!ediSource" |
| | | ></el-input> |
| | |
| | | :loading="loadingStructIfs" |
| | | >物料同步ERP |
| | | </el-button> --> |
| | | <el-button |
| | | <!-- <el-button |
| | | v-if="permissions.manufacturingorder_refresh_ifsorder" |
| | | @click="refreshIfsorder()" |
| | | type="primary" |
| | | style="margin-left:10px;" |
| | | :loading="refreshIfsorderLoading" |
| | | >刷新ifs车间订单号 |
| | | </el-button> |
| | | </el-button> --> |
| | | |
| | | <el-button |
| | | @click="exportExcel" |
| | |
| | | :loading="loadingExcel" |
| | | >导出 |
| | | </el-button> |
| | | <el-button |
| | | <!-- <el-button |
| | | v-if="permissions.manufacturingorder_update_orderno" |
| | | @click="updateOrderNo" |
| | | type="primary" |
| | | style="margin-left:10px;" |
| | | >更新订单号 |
| | | >更新订单号 --> |
| | | </el-button> |
| | | </template> |
| | | </ttable> |
| | |
| | | fun: this.getOperationTaskByCustomer |
| | | }) |
| | | } |
| | | if (this.permissions.manufacturingorder_order_merge) { |
| | | this.table.toolbar.push({ |
| | | text: '订单合并', |
| | | fun: this.openOrderMerge |
| | | }) |
| | | } |
| | | // if (this.permissions.manufacturingorder_order_merge) { |
| | | // this.table.toolbar.push({ |
| | | // text: '订单合并', |
| | | // fun: this.openOrderMerge |
| | | // }) |
| | | // } |
| | | |
| | | /** |
| | | * { |
| | |
| | | @refreshTestStandardInfo="refreshTestStandardInfo" |
| | | ></testStandardTable> |
| | | </el-tab-pane> |
| | | <el-tab-pane |
| | | <!-- <el-tab-pane |
| | | label="抽检规则" |
| | | key="tb2" |
| | | id="tb2" |
| | |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </el-tab-pane> |
| | | </el-tab-pane> --> |
| | | </el-tabs> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | prop="isReportOperation" |
| | | label="IFS车间订单接收时报告工序" |
| | | align="center" |
| | |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.isReportOperation ? '是' : '否' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | |
| | | unit: item.unit, |
| | | workShop: null, |
| | | workshopTypeCode: 'M', |
| | | requiredDate: null, |
| | | requiredDate: this.masterProduction.requiredDate, |
| | | id: item.id, |
| | | manufactureAttr: this.masterProduction.manufactureAttr, |
| | | isReportOperation: this.isReportOperation |
| | |
| | | }, |
| | | getWorkShopOptions() { |
| | | remote('work_shop').then((response) => { |
| | | console.log("高压",response); |
| | | if (response.data.code === 0) { |
| | | this.workShopOptions = response.data.data |
| | | } else { |
| | |
| | | > |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | <el-button |
| | | <!-- <el-button |
| | | v-if="permissions.masterproductionschedule_submit_oa" |
| | | @click="commitOa()" |
| | | type="primary" |
| | | style="margin-left:10px;" |
| | | :loading="loadingOa" |
| | | >提交OA |
| | | </el-button> |
| | | </el-button> --> |
| | | <!-- <el-button |
| | | v-if="permissions.masterproductionschedule_sync_scm" |
| | | @click="syncScm()" |
| | |
| | | ], |
| | | toolbar: [], |
| | | operator: [ |
| | | { |
| | | text: '订单预留', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.customReserved |
| | | }, |
| | | // { |
| | | // text: '订单预留', |
| | | // type: 'text', |
| | | // size: 'small', |
| | | // fun: this.customReserved |
| | | // }, |
| | | // { |
| | | // text: '查看库存', |
| | | // type: 'text', |
| | |
| | | fun: this.searchMasterPlanSourceHandle |
| | | }, |
| | | { |
| | | text: '订单', |
| | | text: '作废', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.searchOrderHandle |
| | | } |
| | | fun: this.deleteMainPlan |
| | | }, |
| | | // { |
| | | // text: '订单', |
| | | // type: 'text', |
| | | // size: 'small', |
| | | // fun: this.searchOrderHandle |
| | | // } |
| | | ], |
| | | operatorConfig: { |
| | | fixed: 'right', |
| | |
| | | }) |
| | | } |
| | | if (this.permissions.masterproductionschedule_create_outsourcing) { |
| | | this.table.toolbar.push({ |
| | | text: '创建委外订单', |
| | | fun: this.createOutsourcingOrder |
| | | }) |
| | | // this.table.toolbar.push({ |
| | | // text: '创建委外订单', |
| | | // fun: this.createOutsourcingOrder |
| | | // }) |
| | | } |
| | | if (this.permissions.masterproductionschedule_create_order_manual) { |
| | | this.orderTypeArr.push({ |
| | | label: '手动新增', |
| | | command: 'MANUAL', |
| | | disabled: false, |
| | | permitArr: ['02processed'] |
| | | }) |
| | | // this.orderTypeArr.push({ |
| | | // label: '手动新增', |
| | | // command: 'MANUAL', |
| | | // disabled: false, |
| | | // permitArr: ['02processed'] |
| | | // }) |
| | | } |
| | | if (this.permissions.masterproductionschedule_create_order_auto) { |
| | | this.orderTypeArr.push({ |
| | |
| | | this.getSysParam(sysParam.IS_REPORT_OPERATION) |
| | | }, |
| | | methods: { |
| | | deleteMainPlan(row){}, |
| | | getSysParam(paramKey) { |
| | | getSysParam(paramKey).then((response) => { |
| | | var paramVal = response.data.data |
| | |
| | | </el-table-column> |
| | | <el-table-column label="备注" show-overflow-tooltip prop="remark"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | header-align="center" |
| | | align="center" |
| | | label="操作" |
| | |
| | | >保存 |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | </el-table> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="info" @click="visible = false">关闭</el-button> |
| | |
| | | <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null" |
| | | class="item" effect="dark" content="请先选择设备!" placement="top-start"> |
| | | <el-select style="width: 100%;" @change="changeState(scope.row, index)" :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" placeholder="请选择"> |
| | | <!-- <el-option v-for="item in dataVal" :key="item.value" :label="item.label" |
| | | <el-option v-for="item in dataVal" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> --> |
| | | <el-option v-for="item in dataVal" :key="item.value" :label="(item.value === '1' ? '是' : '否')" :value="item.value"></el-option> |
| | | |
| | | |
| | | </el-option> |
| | | </el-select> |
| | | <span v-if="resultVal != null && processInspectVo.id != null" |
| | | v-text="scope.row.empiricalValueAddss[index]"></span> |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | // 1 是 0否 |
| | | dataVal: [{ |
| | | label: '1', |
| | | value: '1' |
| | | label: '是', |
| | | value: '是' |
| | | }, { |
| | | label: '0', |
| | | value: '0' |
| | | label: '否', |
| | | value: '否' |
| | | }], |
| | | resultVal: null, |
| | | deviceList: [], |
| | |
| | | this.init() |
| | | }, |
| | | methods: { |
| | | |
| | | |
| | | submitSave(){ |
| | | let pro = 0 |
| | | this.inspectionItems.forEach(item => { |
| | |
| | | material: result.material, |
| | | userName: Array.from(new Set(userList)).join(","), |
| | | result: this.resultVal==null ? '' : this.resultVal, |
| | | |
| | | }] |
| | | }).catch(error=>{ |
| | | console.log(error) |
| | |
| | | </el-row> |
| | | <el-row style="width:100%;"> |
| | | <el-col :span="24"> |
| | | <el-table border |
| | | :data="inspectionItems" |
| | | <el-table border |
| | | :data="inspectionItems" |
| | | height="400" |
| | | :header-cell-style="{ textAlign: 'center', color: 'black', backgroundColor: '#fafafa' }" |
| | | :cell-style="{ textAlign: 'center' }" |
| | | row-key="iid" |
| | | :cell-style="{ textAlign: 'center' }" |
| | | row-key="iid" |
| | | default-expand-all style="width: 100%" |
| | | ref="table" |
| | | ref="table" |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> |
| | | <el-table-column type="index" label="序号" width="60"></el-table-column> |
| | | <el-table-column label="项目" prop="father" width="240"></el-table-column> |
| | |
| | | v-model="scope.row.empiricalValueAddss[index]" |
| | | @blur="changeState(scope.row, index)" placeholder="请输入检测值"></el-input> --> |
| | | <el-select style="width: 100%;" @change="changeState(scope.row, index)" :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" placeholder="请选择"> |
| | | <el-option v-for="item in dataVal" :key="item.value" :label="(item.value === '1' ? '是' : '否')" :value="item.value"></el-option> |
| | | |
| | | |
| | | <el-option v-for="item in dataVal" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <span v-if="resultVal != null && processInspectVo.id != null" |
| | | v-text="scope.row.empiricalValueAddss[index]"></span> |
| | |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | <el-table-column |
| | | label="检验描述" width="240" style="text-align: center;"> |
| | | <template slot-scope="scope"> |
| | | <el-col v-if="scope.row.itype === '1'"> |
| | |
| | | <span v-if="resultVal != null && processInspectVo.id != null" |
| | | v-text="scope.row.inote"></span> |
| | | </el-tooltip> |
| | | </el-col> |
| | | </el-col> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="结论" fixed="right" min-width="100"> |
| | |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | <script> |
| | | import { |
| | | chooseMater, |
| | |
| | | data() { |
| | | return { |
| | | dataVal: [{ |
| | | label: '1', |
| | | value: '1' |
| | | label: '是', |
| | | value: '是' |
| | | }, { |
| | | label: '0', |
| | | value: '0' |
| | | label: '否', |
| | | value: '否' |
| | | }], |
| | | resultVal: null, |
| | | technologyList: [], |
| | |
| | | row.empiricalValueAddss.forEach(e => { |
| | | str += e + "," |
| | | }) |
| | | |
| | | |
| | | // if (note === undefined || note === '' || note === null) { |
| | | // return |
| | | // } |
| | |
| | | return |
| | | } |
| | | |
| | | |
| | | |
| | | let obj = { |
| | | devideId: row.eId, |
| | | ppid: row.iid, |
| | |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | |
| | | <style scoped> |
| | | .finishedProduct-detail { |
| | | width: 100%; |
| | |
| | | border-top: 0 !important; |
| | | cursor: pointer !important; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | //查看报告按钮 |
| | | previewFun(row){ |
| | | getObj(row.id).then(res=>{ |
| | | console.log(res); |
| | | this.printFormData = res.data.data |
| | | this.printDialogVisible = true |
| | | }).catch(error=>{ |
| | |
| | | PrintJS({ |
| | | printable: "printRaw", |
| | | type: "html", |
| | | maxWidth: 900, |
| | | maxWidth: 880, |
| | | // header: "原材料检测报告", |
| | | style: '@page {margin: 0 5mm}', |
| | | style: '@page {margin: 0 5mm;}', |
| | | targetStyles: ["*"], |
| | | ignoreElements: ["no-ignore"], |
| | | orientation: 'portrait' |
| | |
| | | :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" |
| | | v-model="scope.row.testValueList[index]" |
| | | placeholder="请输入或选择检测值" @change="updateTestValue(scope.row,scope.$index)"> |
| | | <!-- <el-option label="是" value="是"/> |
| | | <el-option label="否" value="否"/> --> |
| | | <el-option v-for="item in dataVal" :key="item.value" :label="(item.value === '1' ? '是' : '否')" :value="item.value"></el-option> |
| | | |
| | | |
| | | <el-option label="是" value="是"/> |
| | | <el-option label="否" value="否"/> |
| | | </el-select> |
| | | </el-tooltip> |
| | | </div> |
| | |
| | | }, |
| | | data(){ |
| | | return{ |
| | | dataVal: [{ |
| | | label: '1', |
| | | value: '1' |
| | | }, { |
| | | label: '0', |
| | | value: '0' |
| | | }], |
| | | userdata:[], |
| | | currentRow:[], |
| | | userlist:[], |
| | |
| | | } |
| | | ele.iid = Math.random() |
| | | ele.father = item.rpFather |
| | | if (item.children != undefined) { |
| | | item.children.forEach(obj => { |
| | | let arr= [] |
| | | if(obj.userName){ |
| | | userNameList.push(obj.userName) |
| | | } |
| | | let arr= [] |
| | | |
| | | |
| | | if(obj.testValue){ |
| | | arr = obj.testValue.split(",") |
| | | console.log(arr); |
| | | } |
| | | |
| | | if (arr.length > this.empiricalValueAdd) { |
| | | this.empiricalValueAdd = arr.length |
| | | } |
| | | let o = { |
| | | deviceId: obj.deviceId, |
| | | deviceName: obj.deviceName, |
| | |
| | | ele.children.push(o) |
| | | }) |
| | | this.list.push(ele) |
| | | console.log(this.list,111111111111); |
| | | } |
| | | }} |
| | | }) |
| | | this.conclusionTable = [{ |
| | | code: data.code, |
| | |
| | | style="width:620pt;border-collapse:collapse;border:1pt solid windowtext"> |
| | | <tbody> |
| | | <tr> |
| | | <td width="121" colspan="2" style="width:110pt;border:solid windowtext 1.0pt;padding:0.2cm 1.4pt 0.2cm 1.4pt"> |
| | | <td width="121" colspan="2" style="width:120pt;height:50pt;border:solid windowtext 1.0pt;padding:1pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:宋体">零件名称</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Part Description</span> |
| | | </p> |
| | | </td> |
| | | <td width="127" colspan="4" style="width:95.5pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <td width="127" colspan="5" style="width:95.5pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif" v-text="tableData.name"></span> |
| | | </p> |
| | | </td> |
| | | <td width="113" colspan="4" style="width:84.95pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <td width="113" colspan="3" style="width:84.95pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:宋体">型</span><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif"> |
| | |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td width="101" colspan="2" style="width:110pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.2cm 1.4pt 0.2cm 1.4pt"> |
| | | <td width="101" colspan="2" style="width:110pt;height:50pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.2cm 1.4pt 0.2cm 1.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:宋体">检验仪器</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Inspection |
| | | instrument</span></p> |
| | | </td> |
| | | <td width="127" colspan="4" style="width:95.5pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <td width="127" colspan="5" style="width:95.5pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="deviceStr"></span></p> |
| | | </td> |
| | | <td width="113" colspan="4" style="width:84.95pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <td width="113" colspan="3" style="width:84.95pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:宋体">检验数量</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td width="145" colspan="3" style="width:109.1pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.4cm 5.4pt 0.4cm 5.4pt"> |
| | | <td width="145" colspan="3" style="width:109.1pt;height:40pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.4cm 5.4pt 0.4cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-size:9.0pt;font-family:宋体">技术要求</span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">Technical |
| | | Requirement</span></p> |
| | | </td> |
| | | <td width="59" colspan="2" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 4.4pt 0.2cm 4.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <td width="59" colspan="3" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 4.4pt 0.2cm 4.4pt"> |
| | | <div class="MsoNormal" align="center" style="text-align:center"> |
| | | <span style="font-size:9.0pt;font-family:宋体">公差</span> |
| | | <span lang="EN-US" style="font-size:9.0pt;font-family:"Arial",sans-serif">TOL</span> |
| | | </p> |
| | | <p lang="EN-US" style="font-size:9.0pt;text-align: center;font-family:"Arial",sans-serif">TOL</p> |
| | | </div> |
| | | </td> |
| | | <td width="43" v-for="(item,index) in 13" :key="index" colspan="1" style="width:32.2pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <td width="43" v-for="(item,index) in columnLength" :key="index" colspan="1" style="width:32.2pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-size:9.0pt;font-family:"Arial",sans-serif">{{item>9?item:'0'+item}}</span></p> |
| | | </td> |
| | |
| | | </tbody> |
| | | <tbody v-for="(item,index) in projectList" :key="index"> |
| | | <tr style="height:19.85pt"> |
| | | <td width="85" rowspan="16" style="width:63.95pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <td width="85" :rowspan="item.children.length" style="width:63.95pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span |
| | | style="font-family:宋体" v-text="item.rpFather"></span></p> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="item.children[0].rpName"></span></p> |
| | | </td> |
| | | <td width="59" colspan="2" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <td width="59" colspan="3" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif" v-text="item.children[0].required"></span></p> |
| | | </td> |
| | |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">{{val}}</span></p> |
| | | </td> |
| | | <td width="74" style="width:55.8pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p v-if="item.children[0].testState==1" class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | <td width="74" style="width:70pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.1cm 2.4pt 0.1cm 2.4pt;height:19.85pt"> |
| | | <p v-if="item.children[0].testState=='1'" class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">合格</span></p> |
| | | <p v-else class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | <p v-if="item.children[0].testState=='0'" class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">不合格</span></p> |
| | | <p v-else class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif"></span></p> |
| | | </td> |
| | | </tr> |
| | | <tr style="height:19.85pt" v-for="(j,index) in (item.children.slice(1))" :key="index"> |
| | |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">{{j.rpName}}</span></p> |
| | | </td> |
| | | <td width="59" colspan="2" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <td width="59" colspan="3" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">{{j.required}}</span></p> |
| | | </td> |
| | |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif">{{testValue}}</span></p> |
| | | </td> |
| | | <td width="43" colspan="1" style="width:32.2pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" |
| | | style="font-family:"Arial",sans-serif"> </span></p> |
| | | <td width="43" colspan="1" style="width:70pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.1cm 2.4pt 0.1cm 2.4pt;height:19.85pt"> |
| | | <p class="MsoNormal" align="center" style="text-align:center"> |
| | | <span lang="EN-US" style="font-family:"Arial",sans-serif"> |
| | | {{ j.testState | formatState}} |
| | | </span> |
| | | </p> |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | |
| | | projectList: [], |
| | | deviceStr: null, |
| | | childrenData: [], |
| | | columnLength: 12, |
| | | } |
| | | }, |
| | | filters:{ |
| | | formatState(state){ |
| | | if(state){ |
| | | if(state == "1"){ |
| | | return "合格" |
| | | } |
| | | if(state == "0"){ |
| | | return "不合格" |
| | | } |
| | | return null |
| | | } |
| | | return null |
| | | } |
| | | }, |
| | | methods:{ |
| | |
| | | required: '', |
| | | rpName: '', |
| | | rpUnit: '', |
| | | testState: '', |
| | | testState: null, |
| | | userName: '', |
| | | testValueList: new Array(13) |
| | | testValueList: new Array(this.columnLength) |
| | | } |
| | | let rowNum = 15 |
| | | let columnNum = this.columnLength |
| | | if(list && list.length<2){ |
| | | list.forEach(item=>{ |
| | | if(item.children && item.children.length < 15){ |
| | | let size = 15 - item.children.length |
| | | if(item.children && item.children.length < rowNum){ |
| | | rowNum-=item.children.length |
| | | for(let j=0;j<item.children.length;j++){ |
| | | let arr = [] |
| | | if(item.children[j].testValue){ |
| | | arr = item.children[j].testValue.split(",") |
| | | } |
| | | item.children[j].testValueList = arr |
| | | if(item.children[0].testValueList.length<13){ |
| | | let num = 13 - item.children[j].testValueList.length |
| | | if(item.children[0].testValueList.length< columnNum ){ |
| | | let num = columnNum - item.children[j].testValueList.length |
| | | for(let i=0;i<num;i++){ |
| | | item.children[j].testValueList.push("") |
| | | } |
| | | } |
| | | } |
| | | for(let i=0;i< size;i++){ |
| | | for(let i=0;i< rowNum;i++){ |
| | | item.children.push(data) |
| | | } |
| | | } |
| | |
| | | list.forEach(item=>{ |
| | | if(item.children){ |
| | | size+=item.children.length |
| | | item.children.forEach(obj=>{ |
| | | if(obj.testValue){ |
| | | let testValueList = obj.testValue.split(",") |
| | | obj.testValueList = testValueList |
| | | if(testValueList.length < columnNum){ |
| | | let len = columnNum-testValueList.length |
| | | for(var i=0;i<len;i++){ |
| | | obj.testValueList.push("") |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | if(size<15){ |
| | | let num = 15 - size |
| | | if(size < rowNum){ |
| | | let num = rowNum - size |
| | | for(let i=0;i<num;i++){ |
| | | list[list.length-1].children.push(data) |
| | | } |
| | | } |
| | | } |
| | | // this.projectList = list |
| | | console.log("list----",list) |
| | | this.projectList = list |
| | | } |
| | | }, |
| | | created(){ |
| | | this.tableData = this.formData |
| | | this.initData() |
| | | this.initProjectList(this.projectList) |
| | | console.log("aa--",this.tableData) |
| | | }, |
| | | watch:{ |
| | | formData(newVal){ |
| | | if(newVal){ |
| | | this.projectList = [] |
| | | console.log(newVal) |
| | | this.tableData = newVal |
| | | this.initData() |
| | | this.initProjectList(this.projectList) |
| | |
| | | </el-checkbox-group> |
| | | </div> |
| | | |
| | | <el-divider content-position="left">能力</el-divider> |
| | | <!-- <el-divider content-position="left">能力</el-divider> |
| | | <div class="node-content"> |
| | | <label |
| | | v-if="capacities == null || capacities.length == 0" |
| | |
| | | 没有配置能力 |
| | | </label> |
| | | |
| | | <el-tag |
| | | <el-tag |
| | | size="medium" |
| | | v-for="item in capacities" |
| | | :key="item.id" |
| | |
| | | effect="dark" |
| | | > |
| | | {{ item.label }} |
| | | </el-tag> |
| | | </div> |
| | | </el-tag> |
| | | </div> --> |
| | | <el-divider content-position="left">备注</el-divider> |
| | | <div class="node-content-remark"> |
| | | <rich-text |
| | |
| | | const url = 'http://192.168.0.23:9999' |
| | | |
| | | // const url = 'http://192.168.0.60:9999' |
| | | // const url = 'http://localhost:9999' |
| | | |
| | | // const url = 'http://ztt-gateway:9999' |
| | | const localUrl = 'http://localhost:8089' |