diff --git a/src/api/quality/qcTable.js b/src/api/quality/qcTable.js index da998cb0..a4bdc78b 100644 --- a/src/api/quality/qcTable.js +++ b/src/api/quality/qcTable.js @@ -100,4 +100,12 @@ export function getDLTableCPKInfo(query) { method: 'get', params: query }); -} \ No newline at end of file +} + +export function getTableHzTitle(query) { + return request({ + url: '/quality/staticTable/getTableHzTitle', + method: 'get', + params: query + }); +} diff --git a/src/views/kanban/quality/kanban1.vue b/src/views/kanban/quality/kanban1.vue index 5173f5cd..e9894445 100644 --- a/src/views/kanban/quality/kanban1.vue +++ b/src/views/kanban/quality/kanban1.vue @@ -50,7 +50,7 @@ </span> </div> <div class="name2"> - 今日生产数量 + 今日产量(PC) </div> </div> <div class="box"> @@ -60,7 +60,7 @@ </span> </div> <div class="name2"> - 今日已抽检数量 + 今日抽检数量(PC) </div> </div> <div class="box"> @@ -70,7 +70,7 @@ </span> </div> <div class="name2"> - 今日不良数量 + 今日不良数(PC) </div> </div> </div> @@ -82,7 +82,7 @@ </span> </div> <div class="name2"> - 本月生产数量 + 本月产量(PC) </div> </div> <div class="box"> @@ -92,7 +92,7 @@ </span> </div> <div class="name2"> - 本月不良数量 + 本月不良数(PC) </div> </div> </div> @@ -298,7 +298,7 @@ export default { getdatalist() { const _this = this; getProduceStaticInfo({ - ymdType: moment().format(_this.selectxtclasses), + ymdType: _this.selectxtclasses,//moment().format(_this.selectxtclasses), typeCode: 'produce', factoryCode: 'ds_' + _this.selectxt, }).then((response) => { @@ -318,7 +318,7 @@ export default { }); getCheckProjectsPie({ typeCode: 'produce', - ymdType: moment().format(_this.selectxtclasses), + ymdType: _this.selectxtclasses,//moment().format(_this.selectxtclasses), factoryCode: 'ds_' + _this.selectxt, }).then((response) => { if (response) { diff --git a/src/views/quality/qcTableCheckDevelop/index.vue b/src/views/quality/qcTableCheckDevelop/index.vue new file mode 100644 index 00000000..8e2cb80f --- /dev/null +++ b/src/views/quality/qcTableCheckDevelop/index.vue @@ -0,0 +1,358 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" style="margin-bottom: -34px;"> + <el-form-item label="来料月份" prop="incomeTimeYM"> + <el-date-picker + v-model="queryParams.incomeTimeYM" + format="yyyy-MM" + type="month" + placeholder="选择月"> + </el-date-picker> + </el-form-item> + <el-form-item label="供应商" prop="supplierCodeArray"> + <div class="tagbox"> + <div class="tag" style="" placeholder="请选择供应商"> + <el-tag + :key="index" + class="tagitem" + v-for="(tag, index) in selectMaterielListtag" + closable + :disable-transitions="false" + @close="handleClose(tag)" + > + {{ tag.supplierName }} + </el-tag> + </div> + <el-button + slot="append" + class="button1" + @click="handleSelectSupplier" + icon="el-icon-search" + ></el-button> + <el-row style="display: none;"> + <el-input type="input" clearable v-model="queryParams.supplierCode" placeholder="点击选择物料"/> + <el-input type="input"clearable v-model="queryParams.supplierName" placeholder="点击选择物料"/> + </el-row> + </div> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['mes:rfidProcess:export']" + >导出</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="incomeList" @selection-change="handleSelectionChange"> + <el-table-column label="供应商编号" align="center" prop="supplierCode" width="120" fixed/> + <el-table-column label="供应商名称" align="left" prop="supplierName" width="390" fixed/> + <el-table-column label="总批数" align="center" prop="batchs" width="90"/> + <el-table-column label="合格批次" align="center" prop="okBatchs" width="100"/> + <el-table-column label="不合格批次" align="center" prop="noOkBatchs" width="100"/> + <el-table-column label="批次不良率" align="center" prop="noOkBatchRate" width="100"/> + <el-table-column label="总数量" align="center" prop="nums" width="90"/> + <el-table-column label="合格数量" align="center" prop="okNums" width="100"/> + <el-table-column label="不合格数量" align="center" prop="noOkNums" width="100"/> + <el-table-column label="数量不良率" align="center" prop="noOkNumRate" width="100"/> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + </div> +</template> + +<script> +import { getIncomeTableList} from "@/api/quality/qcTable"; +import moment from 'moment'; +export default { + name: "qcTableCheckDevelop", + components: {}, + data() { + return { + // 遮罩层 + loading: true, + // 选中数组 + ids: [], + // 非单个禁用 + single: true, + // 非多个禁用 + multiple: true, + // 显示搜索条件 + showSearch: true, + // 总条数 + total: 0, + // 生产rfid流程表格数据 + incomeList: [], + // 弹出层标题 + title: "", + // 是否显示弹出层 + open: false, + // 新增-物料选中listtag + selectMaterielListtag:[], + // 查询参数 + queryParams: { + incomeTimeYM:null, + incomeTimeArray: [], + checkTimeArray: [], + pageNum: 1, + pageSize: 10, + workorderId: null, + rfid: null, + factoryCode: null, + machineCode: null, + nowProcessId: null, + nextProcessId: null, + orderNum: null, + inTime: null, + outTime: null, + status: null, + shiftId: null, + productCode: null, + supplierName: '', + supplierCode: '' + }, + // 表单参数 + form: {}, + // 表单校验 + rules: { + workorderId: [ + { required: true, message: "工单ID不能为空", trigger: "blur" } + ], + rfid: [ + { required: true, message: "rfid号不能为空", trigger: "blur" } + ], + } + }; + }, + mounted(){ + this.getDate(); + this.getList(); + }, + created() { + + }, + methods: { + + /**获取默认查询时间段**/ + getDate() { + let start = this.Fungetdate (0) + this.queryParams.incomeTimeYM=start + }, + Fungetdate (num) { + var dd = new Date(); + dd.setDate(dd.getDate() + num); + var y = dd.getFullYear(); + var m = dd.getMonth() + 1;//获取当前月份的日期 + var d = dd.getDate(); + return y + "-" + m; + }, + /** 查询列表 */ + getList() { + this.loading = true; + if(this.queryParams.incomeTimeYM!=null){ + this.queryParams.yearMonth = moment(this.queryParams.incomeTimeYM).format('YYYY-MM'); + } + getIncomeTableList(this.queryParams).then(response => { + this.incomeList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 取消按钮 + cancel() { + this.open = false; + this.reset(); + }, + // 表单重置 + reset() { + this.form = { + recordId: null, + workorderId: null, + rfid: null, + factoryCode: null, + machineCode: null, + nowProcessId: null, + nextProcessId: null, + orderNum: null, + inTime: null, + outTime: null, + status: null, + remark: null, + attr1: null, + attr2: null, + attr3: null, + attr4: null, + createBy: null, + createTime: null, + updateBy: null, + updateTime: null, + shiftId: null + }; + this.resetForm("form"); + }, + /** 搜索按钮操作 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 重置按钮操作 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 多选框选中数据 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.recordId) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 新增按钮操作 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "添加生产rfid流程"; + }, + /** 修改按钮操作 */ + handleUpdate(row) { + this.reset(); + const recordId = row.recordId || this.ids + getRfidProcess(recordId).then(response => { + this.form = response.data; + this.open = true; + this.title = "修改生产rfid流程"; + }); + }, + /** 提交按钮 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.recordId != null) { + updateRfidProcess(this.form).then(response => { + this.$modal.msgSuccess("修改成功"); + this.open = false; + this.getList(); + }); + } else { + addRfidProcess(this.form).then(response => { + this.$modal.msgSuccess("新增成功"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 删除按钮操作 */ + handleDelete(row) { + const recordIds = row.recordId || this.ids; + this.$modal.confirm('是否确认删除生产rfid流程编号为"' + recordIds + '"的数据项?').then(function() { + return delRfidProcess(recordIds); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("删除成功"); + }).catch(() => {}); + }, + /** 导出按钮操作 */ + handleExport() { + this.download('mes/rfidProcess/export', { + ...this.queryParams + }, `rfidProcess_${new Date().getTime()}.xlsx`) + }, + /**供应商选择弹出框**/ + handleSelectSupplier() { + this.$refs.itemSelectSupplier.showFlag = true; + }, + //供应商选择确认 + onSelectSupplier(objs) { + var code = ''; + var desc = ''; + for (let i = 0; i < objs.length; i++) { + if(this.queryParams.supplierCode.indexOf(objs[i].supplierCode)<0){ + code = code + objs[i].supplierCode + ','; + this.selectMaterielListtag.push(objs[i]) + }else{ + this.$message({ + message: objs[i].supplierName+'已经选择', + type: 'warning' + }) + } + + if(this.queryParams.supplierName.indexOf(objs[i].supplierName)<0){ + desc = desc + objs[i].supplierName + ','; + } + } + this.queryParams.supplierCode += code; + this.queryParams.supplierName += desc; + }, + // 新增—删除标签 + handleClose(tag) { + this.selectMaterielListtag.splice(this.selectMaterielListtag.indexOf(tag.supplierName), 1); + + var code = ""; + var desc = ""; + for (let i = 0; i < this.selectMaterielListtag.length; i++) { + code = code + this.selectMaterielListtag[i].supplierCode + ","; + desc = desc + this.selectMaterielListtag[i].supplierName + ","; + } + this.queryParams.supplierCode += code; + this.queryParams.supplierName += desc; + } + } +}; +</script> +<style lang="scss" scoped> +.tagbox { + display: flex; + /* overflow: scroll; */ + position: relative; + width: 80%; + padding-left: 26px; + margin-bottom: 15px; + .tagboxlabel{ + width: 100px; + text-align: right; + vertical-align: middle; + font-size: 14px; + color: black; + line-height: 40px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-right: 12px; + } + .tag { + width: 720px; + border: 1px #DCDFE6 solid; + height: 60px; + padding: 5px 15px; + overflow-y: scroll; + .tagitem{ + margin-left: 5px; + } + } + .button1{ + width: 37px; + height: 37px; + position: absolute; + right: -39px; + top: 2px; + + } +} +</style> \ No newline at end of file diff --git a/src/views/quality/qcTableCheckHz/index.vue b/src/views/quality/qcTableCheckHz/index.vue new file mode 100644 index 00000000..a89738c2 --- /dev/null +++ b/src/views/quality/qcTableCheckHz/index.vue @@ -0,0 +1,291 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="检验类型" prop="typeCode"> + <el-select v-model="queryParams.typeCode" clearable placeholder="请选择类型" @change="getCheckTypeList"> + <el-option + v-for="dict in dict.type.check_type" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> + </el-select> + </el-form-item> + <el-form-item label="检验节点" prop="checkType"> + <el-select v-model="queryParams.checkType" clearable placeholder="请选择检验节点"> + <el-option + v-for="dict in checkTypeList" + :key="dict.checkType" + :label="dict.checkName" + :value="dict.checkType" + ></el-option> + </el-select> + </el-form-item> + + <el-form-item label="来料月份" prop="incomeTimeYM"> + <el-date-picker + v-model="queryParams.incomeTimeYM" + format="yyyy-MM" + type="month" + placeholder="选择月"> + </el-date-picker> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['quality:project:export']" + >导出</el-button> + </el-col> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange"> + <el-table-column label="日期" align="center" prop="ymdms" width="150" /> + <template v-for="(column, index) in showTitles1"> + <el-table-column align="center" min-width="120" :prop="column.id" :key="column.id" :label="column.titleName"/> + </template> + <el-table-column label="抽样总数" align="center" prop="quantity" min-width="100" /> + <template v-for="(column, index) in showTitles2"> + <el-table-column align="center" min-width="120" :prop="column.id" :key="column.id" :label="column.titleName"/> + </template> + <el-table-column label="不良总数" align="center" prop="quantity" min-width="100" /> + <el-table-column label="不良率" align="center" prop="quantity" min-width="100" /> + <el-table-column label="抽检批数" align="center" prop="quantity" min-width="100" /> + <el-table-column label="不合格批数" align="center" prop="quantity" min-width="100" /> + <el-table-column label="不合格批次率" align="center" prop="quantity" min-width="100" /> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + </div> +</template> + +<script> +import { getTableHzTitle, + getCheckTypeList, +} from "@/api/quality/qcTable"; +import moment from 'moment'; +export default { + name: "qcTableCheckHz", + dicts: ["check_type"], + components: {}, + data() { + return { + // 遮罩层 + loading: true, + // 选中数组 + ids: [], + // 非单个禁用 + single: true, + // 非多个禁用 + multiple: true, + // 显示搜索条件 + showSearch: true, + // 总条数 + total: 0, + tableList: [], + showTitles1: [], + showTitles2: [], + // 弹出层标题 + title: "", + // 是否显示弹出层 + open: false, + checkTypeList: [], + // 查询参数 + queryParams: { + incomeTimeYM:null, + incomeTimeArray: [], + checkTimeArray: [], + pageNum: 1, + pageSize: 10, + workorderId: null, + rfid: null, + factoryCode: null, + machineCode: null, + nowProcessId: null, + nextProcessId: null, + orderNum: null, + inTime: null, + outTime: null, + status: null, + shiftId: null, + productCode: null, + supplierName: '', + supplierCode: '' + }, + // 表单参数 + form: {}, + // 表单校验 + rules: { + + } + }; + }, + mounted(){ + this.getDate(); + this.getList(); + }, + created() { + + }, + methods: { + + /**获取默认查询时间段**/ + getDate() { + let start = this.Fungetdate (0) + this.queryParams.incomeTimeYM=start + }, + Fungetdate (num) { + var dd = new Date(); + dd.setDate(dd.getDate() + num); + var y = dd.getFullYear(); + var m = dd.getMonth() + 1;//获取当前月份的日期 + var d = dd.getDate(); + return y + "-" + m; + }, + /** 查询列表 */ + getList() { + this.loading = true; + if(this.queryParams.incomeTimeYM!=null){ + this.queryParams.yearMonth = moment(this.queryParams.incomeTimeYM).format('YYYY-MM'); + } + //获取Table表头 + getTableHzTitle(this.queryParams).then(response => { + this.showTitles1 = []; + for(let i=0;i<response.columns1.length;i++){ + var pobj={}; + pobj.id="colone"+i; + pobj.titleName = response[i]; + this.showTitles1.push(pobj) + } + + this.showTitles2 = []; + for(let i=0;i<response.columns2.length;i++){ + var pobj={}; + pobj.id="coltwo"+i; + pobj.titleName = response[i]; + this.showTitles2.push(pobj) + } + }); + //获取Table数据 + getTableData(this.queryParams).then(response => { + this.hourProList = response; + this.loading = false; + }); + }, + // 取消按钮 + cancel() { + this.open = false; + this.reset(); + }, + // 表单重置 + reset() { + this.form = { + recordId: null, + workorderId: null, + rfid: null, + factoryCode: null, + machineCode: null, + nowProcessId: null, + nextProcessId: null, + orderNum: null, + inTime: null, + outTime: null, + status: null, + remark: null, + attr1: null, + attr2: null, + attr3: null, + attr4: null, + createBy: null, + createTime: null, + updateBy: null, + updateTime: null, + shiftId: null + }; + this.resetForm("form"); + }, + /** 搜索按钮操作 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 重置按钮操作 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + + getCheckTypeList(val) { + //获取检验节点 + getCheckTypeList(val).then((response) => { + this.checkTypeList = response; + }); + }, + + /** 导出按钮操作 */ + handleExport() { + this.download('mes/rfidProcess/export', { + ...this.queryParams + }, `rfidProcess_${new Date().getTime()}.xlsx`) + }, + + } +}; +</script> +<style lang="scss" scoped> +.tagbox { + display: flex; + /* overflow: scroll; */ + position: relative; + width: 80%; + padding-left: 26px; + margin-bottom: 15px; + .tagboxlabel{ + width: 100px; + text-align: right; + vertical-align: middle; + font-size: 14px; + color: black; + line-height: 40px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-right: 12px; + } + .tag { + width: 720px; + border: 1px #DCDFE6 solid; + height: 60px; + padding: 5px 15px; + overflow-y: scroll; + .tagitem{ + margin-left: 5px; + } + } + .button1{ + width: 37px; + height: 37px; + position: absolute; + right: -39px; + top: 2px; + + } +} +</style> \ No newline at end of file diff --git a/src/views/quality/qcTableCheckOrder/index.vue b/src/views/quality/qcTableCheckOrder/index.vue new file mode 100644 index 00000000..e2ec88dd --- /dev/null +++ b/src/views/quality/qcTableCheckOrder/index.vue @@ -0,0 +1,358 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" style="margin-bottom: -34px;"> + <el-form-item label="来料月份" prop="incomeTimeYM"> + <el-date-picker + v-model="queryParams.incomeTimeYM" + format="yyyy-MM" + type="month" + placeholder="选择月"> + </el-date-picker> + </el-form-item> + <el-form-item label="供应商" prop="supplierCodeArray"> + <div class="tagbox"> + <div class="tag" style="" placeholder="请选择供应商"> + <el-tag + :key="index" + class="tagitem" + v-for="(tag, index) in selectMaterielListtag" + closable + :disable-transitions="false" + @close="handleClose(tag)" + > + {{ tag.supplierName }} + </el-tag> + </div> + <el-button + slot="append" + class="button1" + @click="handleSelectSupplier" + icon="el-icon-search" + ></el-button> + <el-row style="display: none;"> + <el-input type="input" clearable v-model="queryParams.supplierCode" placeholder="点击选择物料"/> + <el-input type="input"clearable v-model="queryParams.supplierName" placeholder="点击选择物料"/> + </el-row> + </div> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['mes:rfidProcess:export']" + >导出</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="incomeList" @selection-change="handleSelectionChange"> + <el-table-column label="供应商编号" align="center" prop="supplierCode" width="120" fixed/> + <el-table-column label="供应商名称" align="left" prop="supplierName" width="390" fixed/> + <el-table-column label="总批数" align="center" prop="batchs" width="90"/> + <el-table-column label="合格批次" align="center" prop="okBatchs" width="100"/> + <el-table-column label="不合格批次" align="center" prop="noOkBatchs" width="100"/> + <el-table-column label="批次不良率" align="center" prop="noOkBatchRate" width="100"/> + <el-table-column label="总数量" align="center" prop="nums" width="90"/> + <el-table-column label="合格数量" align="center" prop="okNums" width="100"/> + <el-table-column label="不合格数量" align="center" prop="noOkNums" width="100"/> + <el-table-column label="数量不良率" align="center" prop="noOkNumRate" width="100"/> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + </div> +</template> + +<script> +import { getIncomeTableList} from "@/api/quality/qcTable"; +import moment from 'moment'; +export default { + name: "qcTableCheckOrder", + components: {}, + data() { + return { + // 遮罩层 + loading: true, + // 选中数组 + ids: [], + // 非单个禁用 + single: true, + // 非多个禁用 + multiple: true, + // 显示搜索条件 + showSearch: true, + // 总条数 + total: 0, + // 生产rfid流程表格数据 + incomeList: [], + // 弹出层标题 + title: "", + // 是否显示弹出层 + open: false, + // 新增-物料选中listtag + selectMaterielListtag:[], + // 查询参数 + queryParams: { + incomeTimeYM:null, + incomeTimeArray: [], + checkTimeArray: [], + pageNum: 1, + pageSize: 10, + workorderId: null, + rfid: null, + factoryCode: null, + machineCode: null, + nowProcessId: null, + nextProcessId: null, + orderNum: null, + inTime: null, + outTime: null, + status: null, + shiftId: null, + productCode: null, + supplierName: '', + supplierCode: '' + }, + // 表单参数 + form: {}, + // 表单校验 + rules: { + workorderId: [ + { required: true, message: "工单ID不能为空", trigger: "blur" } + ], + rfid: [ + { required: true, message: "rfid号不能为空", trigger: "blur" } + ], + } + }; + }, + mounted(){ + this.getDate(); + this.getList(); + }, + created() { + + }, + methods: { + + /**获取默认查询时间段**/ + getDate() { + let start = this.Fungetdate (0) + this.queryParams.incomeTimeYM=start + }, + Fungetdate (num) { + var dd = new Date(); + dd.setDate(dd.getDate() + num); + var y = dd.getFullYear(); + var m = dd.getMonth() + 1;//获取当前月份的日期 + var d = dd.getDate(); + return y + "-" + m; + }, + /** 查询列表 */ + getList() { + this.loading = true; + if(this.queryParams.incomeTimeYM!=null){ + this.queryParams.yearMonth = moment(this.queryParams.incomeTimeYM).format('YYYY-MM'); + } + getIncomeTableList(this.queryParams).then(response => { + this.incomeList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 取消按钮 + cancel() { + this.open = false; + this.reset(); + }, + // 表单重置 + reset() { + this.form = { + recordId: null, + workorderId: null, + rfid: null, + factoryCode: null, + machineCode: null, + nowProcessId: null, + nextProcessId: null, + orderNum: null, + inTime: null, + outTime: null, + status: null, + remark: null, + attr1: null, + attr2: null, + attr3: null, + attr4: null, + createBy: null, + createTime: null, + updateBy: null, + updateTime: null, + shiftId: null + }; + this.resetForm("form"); + }, + /** 搜索按钮操作 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 重置按钮操作 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 多选框选中数据 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.recordId) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 新增按钮操作 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "添加生产rfid流程"; + }, + /** 修改按钮操作 */ + handleUpdate(row) { + this.reset(); + const recordId = row.recordId || this.ids + getRfidProcess(recordId).then(response => { + this.form = response.data; + this.open = true; + this.title = "修改生产rfid流程"; + }); + }, + /** 提交按钮 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.recordId != null) { + updateRfidProcess(this.form).then(response => { + this.$modal.msgSuccess("修改成功"); + this.open = false; + this.getList(); + }); + } else { + addRfidProcess(this.form).then(response => { + this.$modal.msgSuccess("新增成功"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 删除按钮操作 */ + handleDelete(row) { + const recordIds = row.recordId || this.ids; + this.$modal.confirm('是否确认删除生产rfid流程编号为"' + recordIds + '"的数据项?').then(function() { + return delRfidProcess(recordIds); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("删除成功"); + }).catch(() => {}); + }, + /** 导出按钮操作 */ + handleExport() { + this.download('mes/rfidProcess/export', { + ...this.queryParams + }, `rfidProcess_${new Date().getTime()}.xlsx`) + }, + /**供应商选择弹出框**/ + handleSelectSupplier() { + this.$refs.itemSelectSupplier.showFlag = true; + }, + //供应商选择确认 + onSelectSupplier(objs) { + var code = ''; + var desc = ''; + for (let i = 0; i < objs.length; i++) { + if(this.queryParams.supplierCode.indexOf(objs[i].supplierCode)<0){ + code = code + objs[i].supplierCode + ','; + this.selectMaterielListtag.push(objs[i]) + }else{ + this.$message({ + message: objs[i].supplierName+'已经选择', + type: 'warning' + }) + } + + if(this.queryParams.supplierName.indexOf(objs[i].supplierName)<0){ + desc = desc + objs[i].supplierName + ','; + } + } + this.queryParams.supplierCode += code; + this.queryParams.supplierName += desc; + }, + // 新增—删除标签 + handleClose(tag) { + this.selectMaterielListtag.splice(this.selectMaterielListtag.indexOf(tag.supplierName), 1); + + var code = ""; + var desc = ""; + for (let i = 0; i < this.selectMaterielListtag.length; i++) { + code = code + this.selectMaterielListtag[i].supplierCode + ","; + desc = desc + this.selectMaterielListtag[i].supplierName + ","; + } + this.queryParams.supplierCode += code; + this.queryParams.supplierName += desc; + } + } +}; +</script> +<style lang="scss" scoped> +.tagbox { + display: flex; + /* overflow: scroll; */ + position: relative; + width: 80%; + padding-left: 26px; + margin-bottom: 15px; + .tagboxlabel{ + width: 100px; + text-align: right; + vertical-align: middle; + font-size: 14px; + color: black; + line-height: 40px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-right: 12px; + } + .tag { + width: 720px; + border: 1px #DCDFE6 solid; + height: 60px; + padding: 5px 15px; + overflow-y: scroll; + .tagitem{ + margin-left: 5px; + } + } + .button1{ + width: 37px; + height: 37px; + position: absolute; + right: -39px; + top: 2px; + + } +} +</style> \ No newline at end of file