|
|
@@ -2,18 +2,10 @@
|
|
|
<div>
|
|
|
<!-- 左侧树形结构 -->
|
|
|
<el-container>
|
|
|
- <layout-sider
|
|
|
- :resize-directions="['right']"
|
|
|
- :width="220"
|
|
|
- style="margin-right: 10px"
|
|
|
- >
|
|
|
+ <layout-sider :resize-directions="['right']" :width="220" style="margin-right: 10px">
|
|
|
<div class="JKWTree-tree" style="height: 70vh;width:100vh" >
|
|
|
<h3>机台生产日报表维护</h3>
|
|
|
- <el-tree
|
|
|
- :data="treeData"
|
|
|
- highlight-current
|
|
|
- @node-click="handleNodeClick"
|
|
|
- />
|
|
|
+ <el-tree :data="treeData" highlight-current @node-click="handleNodeClick"/>
|
|
|
</div>
|
|
|
</layout-sider>
|
|
|
|
|
|
@@ -22,11 +14,7 @@
|
|
|
<!-- 按钮区域 -->
|
|
|
<div class="gva-table-box">
|
|
|
<el-form-item>
|
|
|
- <el-input
|
|
|
- v-model="positionvalue"
|
|
|
- placeholder="输入工单编号或产品名称"
|
|
|
- style="width: 180px"
|
|
|
- />
|
|
|
+ <el-input v-model="positionvalue" placeholder="输入工单编号或产品名称" style="width: 180px" />
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
class="search"
|
|
|
@@ -78,14 +66,7 @@
|
|
|
@row-dblclick="doubleClick"
|
|
|
>
|
|
|
<!-- <el-table-column type="selection" width="55" /> -->
|
|
|
- <el-table-column
|
|
|
- fixed
|
|
|
- align="left"
|
|
|
- sortable
|
|
|
- label="工单编号"
|
|
|
- prop="sczl_gdbh"
|
|
|
- width="105"
|
|
|
- />
|
|
|
+ <el-table-column fixed align="left" sortable label="工单编号" prop="sczl_gdbh" width="105"/>
|
|
|
<el-table-column
|
|
|
fixed
|
|
|
align="left"
|
|
|
@@ -384,29 +365,22 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- 弹出框 -->
|
|
|
- <el-dialog
|
|
|
- v-model="dialogFormVisible"
|
|
|
- :before-close="closeDialog"
|
|
|
- :title="type === 'create' ? '新增' : '修改'"
|
|
|
- destroy-on-close
|
|
|
- width="1200px" >
|
|
|
+ <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type === 'create' ? '新增' : '修改'" destroy-on-close width="1200px" >
|
|
|
<!-- <el-scrollbar height="500px"> -->
|
|
|
<el-form :model="formData" label-position="right" ref="elFormRef" label-width="120px" :rules="rule" >
|
|
|
<el-row :gutter="24">
|
|
|
-
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="工单编号:" prop="flatFeed" class="mab">
|
|
|
<el-input v-model="formData.sczl_gdbh" id="工单编号" placeholder="Enter回车" @keydown="ent1($event,'工单编号')" :clearable="true" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
-
|
|
|
<el-col :span="18">
|
|
|
<el-form-item label="产品名称:" prop="perTenThousand" class="mab" label-width="150" >
|
|
|
- <el-input v-model="formData.Gd_cpmc" id="产品名称" @keydown="ent1($event)" :clearable="true"/>
|
|
|
+ <el-input v-model="formData.Gd_cpmc" id="产品名称" readonly @keydown="ent1($event)"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <!-- @blur="getYJMCsubmit()" -->
|
|
|
</el-row>
|
|
|
+
|
|
|
<el-row :gutter="24">
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="印件号:" prop="flatFeed" class="mab">
|
|
|
@@ -414,57 +388,25 @@
|
|
|
@keydown="ent1($event,'印件号')" :clearable="true" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+
|
|
|
<el-col :span="18">
|
|
|
- <el-form-item
|
|
|
- label="印件名称:"
|
|
|
- prop="perTenThousand"
|
|
|
- class="mab"
|
|
|
- label-width="150"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="formData.yj_yjmc"
|
|
|
- id="印件名称"
|
|
|
- @keydown="ent1($event)"
|
|
|
- :clearable="true"
|
|
|
- />
|
|
|
+ <el-form-item label="印件名称:" prop="perTenThousand" class="mab" label-width="150">
|
|
|
+ <el-input v-model="formData.yj_yjmc" id="印件名称" readonly @keydown="ent1($event)" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
-<!-- @blur="getGXsubmit()" -->
|
|
|
+
|
|
|
<el-row :gutter="24">
|
|
|
<el-col :span="14">
|
|
|
<el-form-item label="工序名称:" prop="flatFeed" class="mab">
|
|
|
- <el-input
|
|
|
- v-model="formData.sczl_gxmc"
|
|
|
- id="工序名称"
|
|
|
- @focus="gxmcHandleFocus()"
|
|
|
-
|
|
|
- @keydown="ent1($event,'工序名称')"
|
|
|
- :clearable="true"
|
|
|
- style="width: 350px"
|
|
|
- />
|
|
|
- <el-input
|
|
|
- v-model="formData.sczl_gxh"
|
|
|
- id="工序号"
|
|
|
- :readonly="true"
|
|
|
- :clearable="true"
|
|
|
- style="width: 50px; margin-left: 10px"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.sczl_gxmc" id="工序名称" @focus="gxmcHandleFocus()"
|
|
|
+ @keydown="ent1($event,'工序名称')" :clearable="true" style="width: 350px"/>
|
|
|
+ <el-input v-model="formData.sczl_gxh" id="工序号" :readonly="true" :clearable="true" style="width: 50px; margin-left: 10px"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="10">
|
|
|
- <el-form-item
|
|
|
- label="工艺名称:"
|
|
|
- prop="perTenThousand"
|
|
|
- class="mab"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="formData.sczl_type"
|
|
|
- id="工艺名称"
|
|
|
- :readonly="true"
|
|
|
- :clearable="true"
|
|
|
- style="width: 200px"
|
|
|
- />
|
|
|
+ <el-form-item label="工艺名称:" prop="perTenThousand" class="mab">
|
|
|
+ <el-input v-model="formData.sczl_type" id="工艺名称" :readonly="true" :clearable="true" style="width: 200px"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -472,42 +414,20 @@
|
|
|
<el-row :gutter="24">
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="日期:" prop="flatFeed" class="mab">
|
|
|
- <el-input
|
|
|
- type="date"
|
|
|
- max="9999-12-31"
|
|
|
- v-model="formData.sczl_rq"
|
|
|
- id="日期"
|
|
|
- @focus="rqHandleFocus()"
|
|
|
- @keydown="ent1($event)"
|
|
|
- :clearable="true"
|
|
|
- style="width: 200px"
|
|
|
- />
|
|
|
+ <el-input type="date" max="9999-12-31" v-model="formData.sczl_rq" id="日期"
|
|
|
+ @focus="rqHandleFocus()" @keydown="ent1($event)" :clearable="true" style="width: 200px"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <!-- @blur="getJtbhsubmit()" -->
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="机器:" prop="flatFeed" class="mab">
|
|
|
- <el-input
|
|
|
- v-model="formData.sczl_jtbh"
|
|
|
- id="机器"
|
|
|
- @keydown="ent1($event,'机器')"
|
|
|
-
|
|
|
- :clearable="true"
|
|
|
- style="width: 100px"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.sczl_jtbh" id="机器"
|
|
|
+ @keydown="ent1($event,'机器')" :clearable="true" style="width: 100px" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <!-- @blur="getBzsubmit()" -->
|
|
|
<el-col :span="10">
|
|
|
<el-form-item label="组别:" prop="flatFeed" class="mab">
|
|
|
- <el-input
|
|
|
- v-model="formData.sczl_bzdh"
|
|
|
- id="组别"
|
|
|
- @keydown="ent1($event,'组别')"
|
|
|
-
|
|
|
- :clearable="true"
|
|
|
- style="width: 200px"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.sczl_bzdh" id="组别"
|
|
|
+ @keydown="ent1($event,'组别')" :clearable="true" style="width: 200px" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -515,31 +435,13 @@
|
|
|
<el-row :gutter="24">
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="墨色:" prop="flatFeed" class="mab">
|
|
|
- <el-input
|
|
|
- v-model="formData.sczl_ms"
|
|
|
- id="墨色"
|
|
|
- @keydown="ent1($event)"
|
|
|
- :clearable="true"
|
|
|
- style="width: 200px"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.sczl_ms" id="墨色" @keydown="ent1($event)" :clearable="true" style="width: 200px" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="加工联数:" prop="flatFeed" class="mab">
|
|
|
- <el-input
|
|
|
- v-model="formData.sczl_ls"
|
|
|
- id="加工联数"
|
|
|
- @keydown="ent1($event)"
|
|
|
- :clearable="true"
|
|
|
- style="width: 100px; margin-right: 30px"
|
|
|
- />
|
|
|
- <el-input
|
|
|
- v-model="mult1"
|
|
|
- id="mult1"
|
|
|
- @keydown="ent1($event)"
|
|
|
- @blur="mult()"
|
|
|
- style="width: 50px"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.sczl_ls" id="加工联数" @keydown="ent1($event)" :clearable="true" style="width: 100px; margin-right: 30px"/>
|
|
|
+ <el-input v-model="mult1" id="mult1" @keydown="ent1($event)" @blur="mult()" style="width: 50px" />
|
|
|
<el-input
|
|
|
v-model="mult2"
|
|
|
id="mult2"
|
|
|
@@ -1063,12 +965,14 @@
|
|
|
<el-table-column prop="ygxm" label="员工姓名" width="200" />
|
|
|
</el-table>
|
|
|
</el-dialog>
|
|
|
-
|
|
|
+<!--
|
|
|
<el-dialog
|
|
|
v-model="GetDedhVisible"
|
|
|
title="选择"
|
|
|
destroy-on-close
|
|
|
width="600px"
|
|
|
+ id="tableFplb"
|
|
|
+ @keydown="ent($event)"
|
|
|
@open="handleDialogOpen"
|
|
|
>
|
|
|
<el-aside width="250px">
|
|
|
@@ -1084,19 +988,20 @@
|
|
|
></el-tree>
|
|
|
</div>
|
|
|
</el-aside>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
- <el-dialog v-model="GXVisible" title="选择" destroy-on-close width="800px" @keydown="selectGxmc($event)">
|
|
|
- <el-table
|
|
|
- tooltip-effect="dark"
|
|
|
- :data="selectData"
|
|
|
- row-key="ID" highlight-current-row="true"
|
|
|
- border style="width: 100%"
|
|
|
- ref="tablesczl_gxmc"
|
|
|
- @row-dblclick="SelectClick" >
|
|
|
- <el-table-column prop="sczl_gxmc" label="工序名称" width="750" />
|
|
|
- </el-table>
|
|
|
- </el-dialog>
|
|
|
+ </el-dialog> -->
|
|
|
+
|
|
|
+ <el-dialog v-model="GetDedhVisible" id="tableFplb" @keydown="ent($event)" style="margin-top: 5%;" >
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="选择定额代号" class="mab" prop="keyOrder"></el-form-item>
|
|
|
+ <div style="border:1px solid #eee; width:100%; height: 600px; overflow-y: auto;">
|
|
|
+ <el-tree :data="GetDedhtreeData" ref="table_fplb"
|
|
|
+ @keydown="handleTreeKeydown"
|
|
|
+ :props="{ children: 'children',label: 'label'}"
|
|
|
+ node-key="id" @node-click="handleFplbClick">
|
|
|
+ </el-tree>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ </el-dialog>
|
|
|
|
|
|
<el-dialog
|
|
|
v-model="JtbhVisible"
|
|
|
@@ -1104,6 +1009,7 @@
|
|
|
destroy-on-close
|
|
|
width="800px"
|
|
|
@keydown="selectSb($event)"
|
|
|
+ style='margin-top: 3%;'
|
|
|
>
|
|
|
<el-table
|
|
|
tooltip-effect="dark"
|
|
|
@@ -1120,39 +1026,32 @@
|
|
|
</el-table>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog
|
|
|
- v-model="BzVisible"
|
|
|
- title="选择"
|
|
|
- destroy-on-close
|
|
|
- width="200px"
|
|
|
- @keydown="selectBZ($event)"
|
|
|
- >
|
|
|
- <el-table
|
|
|
- tooltip-effect="dark"
|
|
|
- :data="selectDataBz"
|
|
|
- row-key="ID"
|
|
|
- highlight-current-row="true"
|
|
|
- border
|
|
|
- style="width: 100%"
|
|
|
- @row-dblclick="SelectClickBz"
|
|
|
- ref="table2"
|
|
|
- >
|
|
|
- <el-table-column prop="sczl_bzdh" label="班组" width="150" />
|
|
|
+ <!-- 班组弹窗 -->
|
|
|
+ <el-dialog v-model="BzVisible" title="选择" destroy-on-close width="200px" @keydown="selectBZ($event)" >
|
|
|
+ <el-table tooltip-effect="dark" :data="selectDataBz" row-key="ID"
|
|
|
+ highlight-current-row="true" border style="width: 100%"
|
|
|
+ @row-dblclick="SelectClickBz" ref="table2" >
|
|
|
+ <el-table-column align="center" prop="sczl_bzdh" label="班组" width="168" />
|
|
|
</el-table>
|
|
|
</el-dialog>
|
|
|
|
|
|
-
|
|
|
+ <!-- 印件号弹窗 -->
|
|
|
<el-dialog v-model="YjhVisible" title="选择" destroy-on-close width="200px" @keydown="selectYjh($event)" >
|
|
|
- <el-table
|
|
|
- tooltip-effect="dark"
|
|
|
- :data="selectDataYjh"
|
|
|
- row-key="ID"
|
|
|
- highlight-current-row="true"
|
|
|
- border
|
|
|
- style="width: 100%;"
|
|
|
- @row-dblclick="SelectClickYjh"
|
|
|
- ref="tablesczl_yjno" >
|
|
|
- <el-table-column prop="yjno" label="印件号" width="170"/>
|
|
|
+ <el-table tooltip-effect="dark" :data="selectDataYjh" row-key="ID" highlight-current-row="true" border
|
|
|
+ :row-style="{ height: '20px' }" :header-cell-style="{ padding: '0px' }"
|
|
|
+ :cell-style="{ padding: '3px' }" :header-row-style="{ height: '20px' }"
|
|
|
+ style="width: 100%;" @row-dblclick="SelectClickYjh" ref="tablesczl_yjno" >
|
|
|
+ <el-table-column align="center" prop="yjno" label="印件号" width="168"/>
|
|
|
+ </el-table>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <!-- 工序名称弹窗 -->
|
|
|
+ <el-dialog v-model="GXVisible" title="选择" destroy-on-close width="800px" @keydown="selectGxmc($event)" style='margin-top: 3%;'>
|
|
|
+ <el-table tooltip-effect="dark" :data="selectData" row-key="ID" highlight-current-row="true"
|
|
|
+ :row-style="{ height: '20px' }" :header-cell-style="{ padding: '0px' }"
|
|
|
+ :cell-style="{ padding: '3px' }" :header-row-style="{ height: '20px' }"
|
|
|
+ border style="width: 100%;" ref="tablesczl_gxmc" @row-dblclick="SelectClick" >
|
|
|
+ <el-table-column prop="sczl_gxmc" label="工序名称" width="750" />
|
|
|
</el-table>
|
|
|
</el-dialog>
|
|
|
|
|
|
@@ -1246,7 +1145,6 @@ const sys_id =
|
|
|
defineOptions({
|
|
|
name: "06-packingDocuments",
|
|
|
});
|
|
|
-const GetDedhVisible = ref(false);
|
|
|
// 侧边栏数据请求
|
|
|
const treeData = reactive([]);
|
|
|
const getTabdata = async () => {
|
|
|
@@ -1635,20 +1533,20 @@ const ent1 = (event,id,id2) => {
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- } else if (event.keyCode === 8) {
|
|
|
- // 删除箭头
|
|
|
- if (event.target.selectionStart === 0) {
|
|
|
- for (let i = currentIndex - 1; i >= 0; i--) {
|
|
|
- if (!inputs[i].readOnly) {
|
|
|
- nextTick(() => {
|
|
|
- inputs[i].focus();
|
|
|
- inputs[i].setSelectionRange(0, 0);
|
|
|
- inputs[i].select(); // 全选输入框内容
|
|
|
- });
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ // } else if (event.keyCode === 8) {
|
|
|
+ // // 删除箭头
|
|
|
+ // if (event.target.selectionStart === 0) {
|
|
|
+ // for (let i = currentIndex - 1; i >= 0; i--) {
|
|
|
+ // if (!inputs[i].readOnly) {
|
|
|
+ // nextTick(() => {
|
|
|
+ // inputs[i].focus();
|
|
|
+ // inputs[i].setSelectionRange(0, 0);
|
|
|
+ // inputs[i].select(); // 全选输入框内容
|
|
|
+ // });
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
} else if (event.keyCode === 37) {
|
|
|
// 向左箭头
|
|
|
if (event.target.selectionStart === 0) {
|
|
|
@@ -2145,127 +2043,191 @@ const mult = () => {
|
|
|
formData.value.sczl_cl = parseFloat(mult1.value * mult2.value);
|
|
|
};
|
|
|
|
|
|
-let GetDedhtreeData = reactive([]);
|
|
|
+
|
|
|
+/*
|
|
|
+ 定额代号弹窗
|
|
|
+*/
|
|
|
+const GetDedhtreeData = reactive([]);
|
|
|
const treeRef = ref(null);
|
|
|
-//定额代号回车事件
|
|
|
-// const getDedhsubmit = () => {
|
|
|
-// //弹出选择
|
|
|
-// let treeData = [];
|
|
|
-// productionDedh({
|
|
|
-// sczl_jtbh: formData.value.sczl_jtbh,
|
|
|
-// }).then((response) => {
|
|
|
-// if (response.code === 0) {
|
|
|
-// if (formData.value.sczl_jtbh == "") {
|
|
|
-// const data = [];
|
|
|
-// data[0] = response.data;
|
|
|
-
|
|
|
-// // 递归函数来构建树形结构
|
|
|
-// const buildTree = (node) => {
|
|
|
-// const treeNode = {
|
|
|
-// label: node.sys_bh + "【" + node.sys_mc + "】",
|
|
|
-// children: [],
|
|
|
-// };
|
|
|
-
|
|
|
-// // 如果存在子节点,递归地添加它们
|
|
|
-// if (node.bh_mc && Array.isArray(node.bh_mc)) {
|
|
|
-// node.bh_mc.forEach((childNode) => {
|
|
|
-// treeNode.children.push(buildTree(childNode)); // 递归调用
|
|
|
-// });
|
|
|
-// }
|
|
|
-
|
|
|
-// return treeNode;
|
|
|
-// };
|
|
|
-
|
|
|
-// // 构建树形结构的根节点
|
|
|
-// const treeData = data.map(buildTree);
|
|
|
-
|
|
|
-// GetDedhtreeData = treeData; // 假设这是外部可访问的变量
|
|
|
-// GetDedhVisible.value = true; // 假设这是一个响应式引用
|
|
|
-// console.log(GetDedhtreeData);
|
|
|
-// } else {
|
|
|
-// formData.value.sczl_dedh = response.data["sys_bh"];
|
|
|
-// }
|
|
|
-// }
|
|
|
-// });
|
|
|
-// };
|
|
|
-const getDedhsubmit = async () => {
|
|
|
- try {
|
|
|
- const response = await productionDedh({
|
|
|
- sczl_jtbh: formData.value.sczl_jtbh,
|
|
|
- });
|
|
|
- if (response.code === 0) {
|
|
|
- if (formData.value.sczl_jtbh === "") {
|
|
|
- const data = [response.data];
|
|
|
- console.log(123,response.data.sys_bh)
|
|
|
- const buildTree = (node) => {
|
|
|
- const treeNode = {
|
|
|
- label: node.sys_bh + "【" + node.sys_mc + "】",
|
|
|
- children: [],
|
|
|
- key: node.sys_bh // 添加key属性,用于设置当前节点
|
|
|
- };
|
|
|
-
|
|
|
- if (node.bh_mc && Array.isArray(node.bh_mc)) {
|
|
|
- node.bh_mc.forEach((childNode) => {
|
|
|
- treeNode.children.push(buildTree(childNode));
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- return treeNode;
|
|
|
- };
|
|
|
-
|
|
|
- GetDedhtreeData = data.map(buildTree);
|
|
|
- GetDedhVisible.value = true;
|
|
|
- } else {
|
|
|
- formData.value.sczl_dedh = response.data.sys_bh;
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- console.error(error);
|
|
|
+const GetDedhVisible = ref(false);
|
|
|
+const table_fplb = ref(null); // el-tree 的 ref
|
|
|
+const defaultExpandedKey = ref(null); // 默认展开的节点 key
|
|
|
+const selectIndex = ref(0); // 当前选中的索引
|
|
|
+
|
|
|
+const getDedhsubmit = async () => {
|
|
|
+ try {
|
|
|
+ const response = await productionDedh({
|
|
|
+ sczl_jtbh: formData.value.sczl_jtbh,
|
|
|
+ });
|
|
|
+ console.log(response);
|
|
|
+
|
|
|
+ if (response.code === 0) {
|
|
|
+ if (formData.value.sczl_jtbh === "") {
|
|
|
+ const data = [response.data];
|
|
|
+ console.log("设备编号", response.data.sys_bh);
|
|
|
+
|
|
|
+ const buildTree = (node) => {
|
|
|
+ const treeNode = {
|
|
|
+ id: node.sys_bh, // 确保有 id 属性,供 node-key 使用
|
|
|
+ label: node.sys_bh + "【" + node.sys_mc + "】",
|
|
|
+ children: [],
|
|
|
+ key: node.sys_bh, //保留 key 属性,便于自定义操作
|
|
|
+ };
|
|
|
+
|
|
|
+ if (node.bh_mc && Array.isArray(node.bh_mc)) {
|
|
|
+ node.bh_mc.forEach((childNode) => {
|
|
|
+ treeNode.children.push(buildTree(childNode));
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ return treeNode;
|
|
|
+ };
|
|
|
+
|
|
|
+ // 更新树形数据
|
|
|
+ GetDedhtreeData.splice(0, GetDedhtreeData.length, ...data.map(buildTree));
|
|
|
+
|
|
|
+ // 显示树形选择框
|
|
|
+ GetDedhVisible.value = true;
|
|
|
+
|
|
|
+ // 使用 nextTick 确保树形组件渲染完成
|
|
|
+ nextTick(() => {
|
|
|
+ const tree = table_fplb.value;
|
|
|
+ if (tree) {
|
|
|
+ const firstNode = tree.getNode(0); // 获取树形的第一个节点
|
|
|
+ if (firstNode) {
|
|
|
+ firstNode.el.focus(); // 聚焦第一个节点
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 如果 sczl_jtbh 有值,则直接填充数据
|
|
|
+ formData.value.sczl_dedh = response.data.sys_bh;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+//键盘事件
|
|
|
+const handleTreeKeydown = (event) => {
|
|
|
+ const tree = table_fplb.value; // 获取树实例
|
|
|
+ if (!tree) {
|
|
|
+ console.error("树组件未加载");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ const focusedElement = document.activeElement;
|
|
|
+ const focusedNodeId = focusedElement?.getAttribute("data-key"); // 获取 DOM 的 data-key 属性
|
|
|
+
|
|
|
+ if (event.keyCode === 13 && focusedNodeId) { // 判断是否是回车键
|
|
|
+ tree.setCurrentKey(focusedNodeId); // 设置当前节点为选中
|
|
|
+ tree.$nextTick(() => {
|
|
|
+ const currentNode = tree.getCurrentNode(); // 获取当前选中的节点
|
|
|
+ if (!currentNode) {
|
|
|
+ console.warn("没有选中的节点");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 清除上一次的选中状态
|
|
|
+ clearPreviousSelection(tree);
|
|
|
+ // 收起所有其他节点
|
|
|
+ Object.keys(tree.store.nodesMap).forEach((key) => {
|
|
|
+ tree.store.nodesMap[key].expanded = false; // 收起所有节点
|
|
|
+ });
|
|
|
+
|
|
|
+ // 展开当前节点
|
|
|
+ tree.store.nodesMap[currentNode.id].expanded = true;
|
|
|
+
|
|
|
+ // 如果当前节点有子节点,选中第一个子节点
|
|
|
+ if (currentNode.children && currentNode.children.length > 0) {
|
|
|
+ const firstChild = currentNode.children[0];
|
|
|
+ if (firstChild) {
|
|
|
+ const firstChildKey = firstChild.id.toString();
|
|
|
+ tree.setCurrentKey(firstChildKey); // 设置第一个子节点为选中
|
|
|
+ setTimeout(() => {
|
|
|
+ const firstChildDom = tree.$el.querySelector(`[data-key="${firstChildKey}"]`);
|
|
|
+ if (firstChildDom) {
|
|
|
+ firstChildDom.focus();
|
|
|
+ firstChildDom.scrollIntoView({ block: "nearest" });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ console.log("当前子节点:", currentNode.label);
|
|
|
+ // 如果节点没有子节点,打印节点名称
|
|
|
+ formData.value.sczl_dedh = currentNode.label.split("【")[0];
|
|
|
+ GetDedhVisible.value = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else if (event.keyCode === 38 || event.keyCode === 40) { // 上下箭头键
|
|
|
+ const currentNode = tree.getCurrentNode();
|
|
|
+ if (currentNode) {
|
|
|
+ const currentNodeDom = tree.$el.querySelector(`[data-key="${currentNode.id}"]`);
|
|
|
+ if (currentNodeDom) {
|
|
|
+ currentNodeDom.focus();
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
-
|
|
|
-const handleDialogOpen = () => {
|
|
|
- nextTick(() => {
|
|
|
- if (treeRef.value && GetDedhtreeData.length > 0) {
|
|
|
- // 假设你希望聚焦到第一个节点,可以使用第一个节点的key
|
|
|
- console.log(treeRef.value,GetDedhtreeData.length)
|
|
|
-
|
|
|
- const firstNodeKey = GetDedhtreeData[0].key;
|
|
|
- console.log(firstNodeKey)
|
|
|
- treeRef.value.setCurrentKey(firstNodeKey);
|
|
|
- }
|
|
|
+
|
|
|
+// 清除之前的选中状态
|
|
|
+const clearPreviousSelection = (tree) => {
|
|
|
+ const selectedNodes = tree.getCheckedNodes();
|
|
|
+ selectedNodes.forEach(node => {
|
|
|
+ tree.setChecked(node, false);
|
|
|
});
|
|
|
+ tree.setCurrentKey(null);
|
|
|
};
|
|
|
|
|
|
+// 弹出框键盘事件
|
|
|
+const ent = (event) => {
|
|
|
+ if (document.activeElement.id === "tableFplb") {
|
|
|
+ if (table_fplb.value) {
|
|
|
+ const tree = table_fplb.value?.$el;
|
|
|
+ console.log(111, tree);
|
|
|
+ if (tree) {
|
|
|
+ const node = tree.querySelector("[data-key]");
|
|
|
+ console.log(222, node);
|
|
|
+ if (event.keyCode === 13) {
|
|
|
+ // GetDedhVisible.value = false;
|
|
|
+ }
|
|
|
+ if (node) {
|
|
|
+ node.scrollIntoView({ block: "nearest" }); // 确保节点可见
|
|
|
+ node.focus(); // 确保焦点正确
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
|
|
|
-//定额代号树形结构单机
|
|
|
-const GetDedhhandleNodeClick = (nodeData, node, component) => {
|
|
|
- //存放当前节点的nodeId
|
|
|
+//点击事件
|
|
|
+const handleFplbClick = (nodeData, node, component) => {
|
|
|
//存放当前节点的nodeId
|
|
|
if (!nodeData.children || nodeData.children.length === 0) {
|
|
|
- // 如果节点没有子节点,打印节点名称
|
|
|
- formData.value.sczl_dedh = nodeData.label.split("【")[0];
|
|
|
- dedhGetRate({
|
|
|
- dedh: nodeData.label.split("【")[0],
|
|
|
- }).then((response) => {
|
|
|
- if (response.code === 0) {
|
|
|
- //设置比例
|
|
|
- formData.value.sczl_rate1 = response.data.sczl_rate1;
|
|
|
- formData.value.sczl_rate2 = response.data.sczl_rate2;
|
|
|
- formData.value.sczl_rate3 = response.data.sczl_rate3;
|
|
|
- formData.value.sczl_rate4 = response.data.sczl_rate4;
|
|
|
- formData.value.sczl_rate5 = response.data.sczl_rate5;
|
|
|
- formData.value.sczl_rate6 = response.data.sczl_rate6;
|
|
|
- formData.value.sczl_rate7 = response.data.sczl_rate7;
|
|
|
- formData.value.sczl_rate8 = response.data.sczl_rate8;
|
|
|
- formData.value.sczl_rate9 = response.data.sczl_rate9;
|
|
|
- formData.value.sczl_rate10 = response.data.sczl_rate10;
|
|
|
- }
|
|
|
- });
|
|
|
- GetDedhVisible.value = false;
|
|
|
+ // 如果节点没有子节点,打印节点名称
|
|
|
+ formData.value.sczl_dedh = nodeData.label.split("【")[0];
|
|
|
+ dedhGetRate({
|
|
|
+ dedh: nodeData.label.split("【")[0],
|
|
|
+ }).then((response) => {
|
|
|
+ if (response.code === 0) {
|
|
|
+ //设置比例
|
|
|
+ formData.value.sczl_rate1 = response.data.sczl_rate1;
|
|
|
+ formData.value.sczl_rate2 = response.data.sczl_rate2;
|
|
|
+ formData.value.sczl_rate3 = response.data.sczl_rate3;
|
|
|
+ formData.value.sczl_rate4 = response.data.sczl_rate4;
|
|
|
+ formData.value.sczl_rate5 = response.data.sczl_rate5;
|
|
|
+ formData.value.sczl_rate6 = response.data.sczl_rate6;
|
|
|
+ formData.value.sczl_rate7 = response.data.sczl_rate7;
|
|
|
+ formData.value.sczl_rate8 = response.data.sczl_rate8;
|
|
|
+ formData.value.sczl_rate9 = response.data.sczl_rate9;
|
|
|
+ formData.value.sczl_rate10 = response.data.sczl_rate10;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ GetDedhVisible.value = false;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+
|
|
|
//员工编号回车事件
|
|
|
const getGxMcsubmit = (event, inputName) => {
|
|
|
if (event.target.value != "") {
|
|
|
@@ -2603,6 +2565,12 @@ function onSearch() {
|
|
|
const ADD = ref("0");
|
|
|
//新增
|
|
|
function onAdd() {
|
|
|
+ setTimeout(() => {
|
|
|
+ const inputElement = document.getElementById('工单编号');
|
|
|
+ if (inputElement) {
|
|
|
+ inputElement.focus();
|
|
|
+ }
|
|
|
+ }, 100);
|
|
|
ADD.value = "新增";
|
|
|
type.value = "create";
|
|
|
if (table_type == "db_sczl") {
|
|
|
@@ -2611,23 +2579,12 @@ function onAdd() {
|
|
|
}
|
|
|
initFormData();
|
|
|
dialogFormVisible.value = true;
|
|
|
- setTimeout(() => {
|
|
|
- const inputElement = document.getElementById('工单编号');
|
|
|
- if (inputElement) {
|
|
|
- inputElement.focus();
|
|
|
- }
|
|
|
- }, 100);
|
|
|
+
|
|
|
} else {
|
|
|
// GetInfo(table.value)
|
|
|
// console.log(['table_type'])
|
|
|
// console.log('此数据无法新增')
|
|
|
dialogFormVisible.value = true;
|
|
|
- setTimeout(() => {
|
|
|
- const inputElement = document.getElementById('工单编号');
|
|
|
- if (inputElement) {
|
|
|
- inputElement.focus();
|
|
|
- }
|
|
|
- }, 100);
|
|
|
}
|
|
|
// Productionadd()
|
|
|
}
|
|
|
@@ -3224,6 +3181,13 @@ let table_type = ref();
|
|
|
const type = ref("");
|
|
|
|
|
|
function doubleClick(row, column, event) {
|
|
|
+ setTimeout(() => {
|
|
|
+ const inputElement = document.getElementById('工单编号');
|
|
|
+ if (inputElement) {
|
|
|
+ inputElement.focus();
|
|
|
+ }
|
|
|
+ }, 100);
|
|
|
+
|
|
|
type.value = "update";
|
|
|
lastCellValue = row["UniqId"];
|
|
|
table.value = lastCellValue;
|
|
|
@@ -3410,4 +3374,8 @@ onMounted(async () => {});
|
|
|
color: blue !important;
|
|
|
font-weight: bold;
|
|
|
}
|
|
|
+/* tree组件背景高亮 */
|
|
|
+:deep(.el-tree-node:focus > .el-tree-node__content){
|
|
|
+ background: #ff80ff !important;
|
|
|
+ }
|
|
|
</style>
|