|
|
@@ -1174,13 +1174,13 @@
|
|
|
</div>
|
|
|
<div style="display: flex; gap: 0px;">
|
|
|
<el-form-item label="车间名称:" class="mab" prop="keyOrder">
|
|
|
- <el-input v-model="gdgyformData['车间名称']" style="width: 130px;"/>
|
|
|
+ <el-input v-model="gdgyformData['车间名称']" style="width: 130px;" @keydown="gyzlent($event, '联数', '车间名称', '工序名称')"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="工艺名称:" class="mab" prop="keyOrder" label-width=" 90">
|
|
|
<el-input v-model="gdgyformData['工艺名称']" style="width: 140px;"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="工序名称:" class="mab" prop="keyOrder" label-width=" 90">
|
|
|
- <el-input v-model="gdgyformData['工序名称']" style="width: 400px;"/>
|
|
|
+ <el-input v-model="gdgyformData['工序名称']" id="工序名称" style="width: 400px;" @keydown="gyzlent($event, '车间名称', '工序名称', '设备编号')" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="计损色数" class="mab" prop="keyOrder" label-width=" 80">
|
|
|
<el-input v-model="gdgyformData['计损色数']" style="width: 90px;"/>
|
|
|
@@ -1203,7 +1203,7 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item label="工序损耗:" class="mab" prop="keyOrder" >
|
|
|
<el-input v-model="gdgyformData['shdh']" style="width: 10%;" id="工序损耗" @keydown="gyzlent($event, '设备编号', '工序损耗', '损耗系数')"/>
|
|
|
- <el-input v-model="gdgyformData['工序名称']" style="width: 88.7%;margin-left: 10px"/>
|
|
|
+ <el-input v-model="gdgyformData['工序损耗名称']" style="width: 88.7%;margin-left: 10px"/>
|
|
|
</el-form-item>
|
|
|
<div style="display: flex; gap: 0px;">
|
|
|
<el-form-item label="损耗系数:" class="mab" prop="keyOrder">
|
|
|
@@ -1278,7 +1278,58 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+<el-dialog v-model="yjdisplay" :before-close="()=> yjdisplay = false" style="width: 800px;" :title="'可选列表'" destroy-on-close>
|
|
|
+ <el-tree :data="yjList" :props="{children: 'children',label: 'name', value: 'no'}" @node-click="changeHandle"
|
|
|
+ default-expand-all style="border: 1px solid #ececec; padding: 10px;height: 400px;overflow: auto;">
|
|
|
+ </el-tree>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+<el-dialog v-model="cjdisplay" :before-close="()=> cjdisplay = false" style="width: 800px;" :title="'车间选择'" destroy-on-close>
|
|
|
+ <el-tree
|
|
|
+ :data="cjList"
|
|
|
+ :render-after-expand="false"
|
|
|
+ @node-click="selectHandle"
|
|
|
+ :props="{children: 'children',label: 'label', value: 'value'}"
|
|
|
+ style="border: 1px solid #ececec; padding: 10px;height: 400px;overflow: auto;"
|
|
|
+ node-key="value"
|
|
|
+ >
|
|
|
+ </el-tree>
|
|
|
+<!-- :default-expanded-keys="['标准工艺']"-->
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <!-- 工序损耗列表-->
|
|
|
+ <el-dialog v-model="gxshdisplay" :before-close="()=> gxshdisplay = false" style="width: 800px;" :title="'工序损耗'" destroy-on-close>
|
|
|
+ <el-tree
|
|
|
+ :data="gxshList"
|
|
|
+ :render-after-expand="false"
|
|
|
+ @node-click="gxshselectHandle"
|
|
|
+ :props="{children: 'children',label: 'label', value: 'value'}"
|
|
|
+ style="border: 1px solid #ececec; padding: 10px;height: 400px;overflow: auto;"
|
|
|
+ node-key="value"
|
|
|
+ :default-expanded-keys="gdgyformData['车间名称']"
|
|
|
+ >
|
|
|
+ </el-tree>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <!-- 新增查询标准损耗 -->
|
|
|
+ <el-dialog v-model="shxsdisplay" :before-close="() => shxsdisplay = false">
|
|
|
+ <el-form>
|
|
|
+ <div>
|
|
|
+ <!-- <el-form-item label="关键字:" class="mab" prop="keyOrder">
|
|
|
+ <el-space>
|
|
|
+ <el-input v-model="gymc_keyword" style="width: 100%;"/>
|
|
|
+ <el-button @click="searchHandle(gymc_keyword)">刷新</el-button>
|
|
|
+ </el-space>
|
|
|
+ </el-form-item> -->
|
|
|
+ <div style="border:1px solid #eee; width:100%; height: 400px; overflow-y: auto">
|
|
|
+ <el-tree :data="getSHListdata" :props="defaultProps" @node-click="selectSHNode" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
<el-dialog v-model="luckyexcelVisible" :before-close="luckyexcelCloseDialog" width="100%" top="0vh">
|
|
|
<div id="luckyexcel" style="width: 100%;height: 90vh;"></div>
|
|
|
</el-dialog>
|
|
|
@@ -1331,7 +1382,7 @@ import {
|
|
|
PrintDetailDel, ProcessDetailDel,WorkOrderDetailCope,
|
|
|
getGdAnnexTable,WorkOrderData,WorkOrderDel,
|
|
|
gdAnnexAdd,ProductCopeDetail,WorkOrderDetailListCope,
|
|
|
- gdAnnexDel,
|
|
|
+ gdAnnexDel,getLossCode,getDepartName,WastageList,getCouplet,PrintDetailList
|
|
|
} from "@/api/yunyin/yunying";
|
|
|
import PrintPage from './components/print.vue'
|
|
|
import AddGongYi from './components/addGongYi.vue'
|
|
|
@@ -3473,7 +3524,27 @@ const _cjmc = ref(null);
|
|
|
//双击修改
|
|
|
const gdgyupdateCompanyFunc = async(row) => {
|
|
|
gdgydialogFormVisible.value = true
|
|
|
-
|
|
|
+
|
|
|
+const apiData = await getDepartName()
|
|
|
+ console.log(apiData)
|
|
|
+ function transformDataToTreeFormat(data) {
|
|
|
+ return Object.entries(data).map(([key, value]) => {
|
|
|
+ // key是车间名称,value是车间内的操作列表
|
|
|
+ const children = Object.entries(value).map(([workshop, operations]) => ({
|
|
|
+ label: workshop,
|
|
|
+ children: operations.map(operation => ({
|
|
|
+ label: operation,
|
|
|
+ value: operation // 可以根据需要添加更多属性
|
|
|
+ }))
|
|
|
+ }));
|
|
|
+ return { label: key, children };
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 使用ref来管理转换后的数据
|
|
|
+ cjList.value = ref(transformDataToTreeFormat(apiData.data));
|
|
|
+ const res = await PrintDetailList({workOrder: _Gd_gdbh.value})
|
|
|
+ yjList.value = res.data
|
|
|
+
|
|
|
console.log(row)
|
|
|
if(row['车间名称']){
|
|
|
_cjmc.value = row['车间名称']
|
|
|
@@ -3540,7 +3611,8 @@ const gdgyupdateCompanyFunc = async(row) => {
|
|
|
}
|
|
|
|
|
|
//工艺列表修改【确定】
|
|
|
-const gdgyenterDialog = async () => {
|
|
|
+const gdgyenterDialog = async () => {
|
|
|
+
|
|
|
if(_Gd_gdbh.value){
|
|
|
const selectedValuesAsString = gdgyformData['设备编号'].join(' ');
|
|
|
// if(gdgyformData['shdh'] === ''){
|
|
|
@@ -3586,6 +3658,7 @@ const gdgyenterDialog = async () => {
|
|
|
const ProcessDetailEdit_edit = await ProcessDetailEdit(formattedData);
|
|
|
if (ProcessDetailEdit_edit.code === 0) {
|
|
|
ElMessage({type: 'success',message: '更新成功' })
|
|
|
+ gdgydialogFormVisible.value = false
|
|
|
let row = {
|
|
|
'工单编号':_Gd_gdbh.value,
|
|
|
'产品代号':_Gd_cpdh.value,
|
|
|
@@ -3625,9 +3698,50 @@ const _capacityList = async () => {
|
|
|
//截取印件前两位
|
|
|
const clickybupdate2 = (row,column,event) => {
|
|
|
currentGy0_yjno.value = row['印件-工序'].substr(0, 2)
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+const yjdisplay = ref(false)
|
|
|
+const yjList = ref()
|
|
|
+const shxsdisplay = ref(false)
|
|
|
+const cjList = ref([])
|
|
|
+const cjdisplay = ref(false)
|
|
|
//修改工艺资料弹窗 键盘 input框跳转
|
|
|
-const gyzlent = (event,id1,id2,id3) => {
|
|
|
+const gyzlent = (event,id1,id2,id3) => {
|
|
|
+ if (id2==='印件编号' && event.key==='Tab' || id2 === '印件编号' && event.key=== 'Enter') {
|
|
|
+ console.log(id.value)
|
|
|
+ console.log(form['yjno'])
|
|
|
+ const response = getCouplet({ gdbh:id.value,yjno:form['yjno']});
|
|
|
+ console.log(response)
|
|
|
+ gdgyformData['开数'] = response.data['开数']
|
|
|
+ gdgyformData['联数'] = response.data['联数']
|
|
|
+ if(yjList.value !== undefined){
|
|
|
+ const node = yjList.value.find(item => item.no ===gdgyformData['yjno'])
|
|
|
+ if (! node) {
|
|
|
+ yjdisplay.value = true
|
|
|
+ }
|
|
|
+ document.getElementById(id3).focus()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (id2 === '车间名称' && event.key==='Tab') {
|
|
|
+ document.getElementById(id3).focus()
|
|
|
+ cjdisplay.value = true
|
|
|
+ }
|
|
|
+ if (id2 === '工序损耗' && event.key==='Tab') {
|
|
|
+ if(gdgyformData['车间名称']){
|
|
|
+ getGxshList();
|
|
|
+ _getSH()
|
|
|
+ shxsdisplay.value = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (id2 === '工序名称' && event.key==='Tab' || event.key==='Enter') {
|
|
|
+ if(gdgyformData['工艺名称'] === undefined){
|
|
|
+ gdgyformData['工艺名称'] = '';
|
|
|
+ }
|
|
|
+ if(gdgyformData['工序名称'] === undefined){
|
|
|
+ gdgyformData['工序名称'] = '';
|
|
|
+ }
|
|
|
+ gdgyformData['工序损耗名称'] = `${gdgyformData['工艺名称']} ${gdgyformData['工序名称']}`;
|
|
|
+ }
|
|
|
if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
|
|
|
if(id3!=''){
|
|
|
document.getElementById(id3).focus()
|
|
|
@@ -3651,6 +3765,137 @@ const gyzlent = (event,id1,id2,id3) => {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+const selectHandle = async (node)=>{
|
|
|
+ console.log(node)
|
|
|
+ if(node.value){
|
|
|
+ gdgyformData['工艺名称'] = node.value
|
|
|
+ gdgyformData['工序损耗名称'] = node.value
|
|
|
+ cjdisplay.value = false
|
|
|
+ }else{
|
|
|
+ gdgyformData['车间名称'] = node.label
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ gdgyformData['设备编号'] = []
|
|
|
+
|
|
|
+ //通过车间名称查询机台
|
|
|
+ const MachineList_jitai = await gdzl_MachineList({address:gdgyformData['车间名称']});
|
|
|
+ gdzl_MachineList_address.value = MachineList_jitai.data;
|
|
|
+ gdgyformData['shdh'] = ''
|
|
|
+ //通过车间名称查询工序损耗
|
|
|
+ // await getGxshList()
|
|
|
+ if(gdgyformData['工艺名称'] === undefined){
|
|
|
+ gdgyformData['工艺名称'] = '';
|
|
|
+ }
|
|
|
+ if(gdgyformData['工序名称'] === undefined){
|
|
|
+ gdgyformData['工序名称'] = '';
|
|
|
+ }
|
|
|
+ await InSH()
|
|
|
+}
|
|
|
+const InSH = async (value) => {
|
|
|
+ if(gdgyformData['工艺名称']){
|
|
|
+ const response = await getLossCode({ code:gdgyformData['工艺名称']});
|
|
|
+ console.log(response)
|
|
|
+ if(response.code===0){
|
|
|
+ gdgyformData['shdh']=response.data[0].sys_bh
|
|
|
+ // gdgyformData.工序损耗名称= node.sys_mc
|
|
|
+ gdgyformData['工序损耗名称'] = `${response.data[0].sys_mc} ${gdgyformData['工序名称']}`;
|
|
|
+ gdgyformData.损耗系数='1.00'
|
|
|
+ gdgyformData.难度系数='1.00'
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+const getSHListdata = ref([]);
|
|
|
+const _shdh = ref('');
|
|
|
+
|
|
|
+//工序损耗列表
|
|
|
+const gxshList = ref([])
|
|
|
+const getGxshList = async ()=>{
|
|
|
+ const WastageList_data = await WastageList({process: gdgyformData.工艺名称})
|
|
|
+ console.log(WastageList_data)
|
|
|
+ if(WastageList_data.data === null || WastageList_data.data === ''){
|
|
|
+ gdgyformData['shdh'] = '';
|
|
|
+ ElMessage({
|
|
|
+ type: 'warning',
|
|
|
+ message: '未获取到工序损耗'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ // const response = await getLossCode({ code: WastageList_data.data });
|
|
|
+ // console.log(response)
|
|
|
+ gdgyformData['shdh'] = WastageList_data.data
|
|
|
+}
|
|
|
+//点击工序损耗列表数据
|
|
|
+const gxshselectHandle = async (node)=>{
|
|
|
+ if(node.label2){
|
|
|
+ gdgyformData['shdh'] = node.value
|
|
|
+ gdgyformData['工序损耗名称'] = node.label2
|
|
|
+ gxshdisplay.value = false
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//填充树形结构
|
|
|
+const _getSH = async () => {
|
|
|
+ const response = await getLossCode({ code:'' });
|
|
|
+ if (response.code === 0) {
|
|
|
+ const data = response.data;
|
|
|
+ const treeData = [];
|
|
|
+ const map = {};
|
|
|
+ // 构建树形结构
|
|
|
+ data.forEach(item => {
|
|
|
+ map[item.sys_bh] = { ...item, children: [], label: `${item.sys_bh}---${item.sys_mc}---${item.sys_rate0}---${item.sys_rate1}` };
|
|
|
+ });
|
|
|
+ data.forEach(item => {
|
|
|
+ if (item.sys_bh.length === 3) {
|
|
|
+ map[item.sys_bh].level = 1;
|
|
|
+ treeData.push(map[item.sys_bh]);
|
|
|
+ } else {
|
|
|
+ map[item.sys_bh].level = 2;
|
|
|
+ map[item.sys_bh.substring(0, 3)].children.push(map[item.sys_bh]);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ getSHListdata.value = treeData;
|
|
|
+ shxsdisplay.value = true;
|
|
|
+ } else {
|
|
|
+ // 处理错误情况
|
|
|
+ console.error('获取损耗列表失败');
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+//损耗树形结构点击
|
|
|
+const selectSHNode = (node,check) => {
|
|
|
+ console.log(node.level)
|
|
|
+ if(node.level==1){
|
|
|
+ console.log(node.label)
|
|
|
+ }
|
|
|
+ if(node.level==2){
|
|
|
+ if(gdgyformData['工艺名称'] === undefined){
|
|
|
+ gdgyformData['工艺名称'] = '';
|
|
|
+ }
|
|
|
+ if(gdgyformData['工序名称'] === undefined){
|
|
|
+ gdgyformData['工序名称'] = '';
|
|
|
+ }
|
|
|
+
|
|
|
+ gdgyformData['shdh']=node.sys_bh
|
|
|
+ // gdgyformData.工序损耗名称= node.sys_mc
|
|
|
+ gdgyformData['工序损耗名称'] = `${node.sys_mc} ${gdgyformData['工序名称']}`;
|
|
|
+ gdgyformData.损耗系数='1.00'
|
|
|
+ gdgyformData.难度系数='1.00'
|
|
|
+ shxsdisplay.value = false;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+const changeHandle = (v) => {
|
|
|
+ const no = '0' + v.no
|
|
|
+ let list = gxList.value.map(item => {
|
|
|
+ const yj = item.split('-')[0]
|
|
|
+ if (yj === no) return Number(item.split('-')[1])
|
|
|
+ })
|
|
|
+ gdgyformData['yjno'] = v.no
|
|
|
+ gdgyformData['工序'] = (list.sort((a, b) => b-a)[0] + 1)
|
|
|
+ yjdisplay.value = false
|
|
|
+}
|
|
|
|
|
|
//===============颜色==================================
|
|
|
//工艺资料背景颜色变黄
|