|
|
@@ -39,7 +39,22 @@
|
|
|
:total="total" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
+ <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="table">
|
|
|
+ <el-table-column prop="sczl_bzdh" label="班组" width="150" />
|
|
|
+ </el-table>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog v-model="BzVisible2" title="冲月定额" destroy-on-close width="200px"
|
|
|
+ @keydown="selectCY($event)">
|
|
|
+ <el-table tooltip-effect="dark" :data="selectDataCY" row-key="ID"
|
|
|
+ highlight-current-row="true" border style="width:100%"
|
|
|
+ ref="table">
|
|
|
+ <el-table-column prop="sczl_冲定额" label="冲月定额" width="150" />
|
|
|
+ </el-table>
|
|
|
+ </el-dialog>
|
|
|
<!-- 弹出框 -->
|
|
|
<div>
|
|
|
<el-dialog v-model="dialogFormVisible" :title="type" destroy-on-close width="1200px">
|
|
|
@@ -52,30 +67,32 @@
|
|
|
|
|
|
<el-form-item label="员工编号">
|
|
|
<el-input v-model="detailData.sczl_bh" style="width: 100px;"
|
|
|
- placeholder="Enter回车" />
|
|
|
+ placeholder="Enter回车"
|
|
|
+ @blur="getBzsubmit()" />
|
|
|
<el-input v-model="detailData.name" style="width: 100px; padding-left: 5px;"
|
|
|
@click="selectvalue($event)" readonly />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="组别">
|
|
|
- <el-select v-model="detailData.sczl_bzdh" placeholder=" " style="width: 80px" >
|
|
|
+ <!-- <el-select v-model="detailData.sczl_bzdh" placeholder=" " style="width: 80px" >
|
|
|
<el-option label="A班" value="A班" />
|
|
|
<el-option label="B班" value="B班" />
|
|
|
- </el-select>
|
|
|
- <!-- <el-input v-model="detailData.sczl_bzdh" style="width: 80px;" /> -->
|
|
|
+ </el-select> -->
|
|
|
+ <el-input v-model="detailData.sczl_bzdh" style="width: 80px;" />
|
|
|
</el-form-item>
|
|
|
<br>
|
|
|
|
|
|
<el-form-item label="计时时数" style="padding-left: 195px;">
|
|
|
<el-input v-model="detailData.sczl_jsss" style="width: 100px;"
|
|
|
- @click="selectvalue($event)" />
|
|
|
+ @click="selectvalue($event)" @blur="getBzsubmit2"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="冲月定额">
|
|
|
- <el-select v-model="detailData.sczl_冲定额" placeholder=" " style="width: 100px">
|
|
|
+ <!-- <el-select v-model="detailData.sczl_冲定额" placeholder=" " style="width: 100px">
|
|
|
<el-option label="" value="" />
|
|
|
<el-option label="是" value="是" />
|
|
|
- </el-select>
|
|
|
+ </el-select> -->
|
|
|
+ <el-input v-model="detailData.sczl_冲定额" style="width: 80px;" />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-table :data="detailData.table" border tooltip-effect="dark"
|
|
|
@@ -163,17 +180,17 @@
|
|
|
|
|
|
|
|
|
<!-- 新增定额代号 -->
|
|
|
- <el-dialog v-model="dedhsearchModel" :before-close="() => dedhsearchModel = false">
|
|
|
+ <el-dialog v-model="dedhsearchModel" :before-close="() => dedhsearchModel = false" @opened="focusFirstNode">
|
|
|
<el-form>
|
|
|
<div>
|
|
|
<el-form-item label="定额代号 :" class="mab" prop="keyOrder">
|
|
|
</el-form-item>
|
|
|
|
|
|
<div style="border:1px solid #eee; width:100%; height: 400px; overflow-y: auto">
|
|
|
- <el-tree :data="dedhtreeData" :props="{
|
|
|
+ <el-tree ref="table_dedh" node-key="id" :data="dedhtreeData" :props="{
|
|
|
children: 'children',
|
|
|
- label: 'label'
|
|
|
- }" @node-click="dedhhandleNodeClick"></el-tree>
|
|
|
+ label: 'label',
|
|
|
+ }" @node-click="dedhhandleNodeClick"></el-tree>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
@@ -219,6 +236,31 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
+<script>
|
|
|
+
|
|
|
+
|
|
|
+// export default {
|
|
|
+// data() {
|
|
|
+// },
|
|
|
+// methods: {
|
|
|
+// focusFirstNode() {
|
|
|
+// // 在对话框打开时聚焦在第一个节点上
|
|
|
+// const tree = this.$refs.dedhTree;
|
|
|
+// if (this.dedhtreeData && this.dedhtreeData.length > 0) {
|
|
|
+// // 设置第一个节点为默认选中节点
|
|
|
+// this.$refs.dedhTree.setCurrentKey(this.dedhtreeData[0].id);
|
|
|
+// }
|
|
|
+// },
|
|
|
+// },
|
|
|
+// mounted() {
|
|
|
+// if (this.dedhsearchModel) {
|
|
|
+// this.focusFirstNode();
|
|
|
+// }
|
|
|
+// },
|
|
|
+// };
|
|
|
+</script>
|
|
|
+
|
|
|
+
|
|
|
<script setup>
|
|
|
import {
|
|
|
Layout,
|
|
|
@@ -235,7 +277,9 @@
|
|
|
// import { Download, Search, Delete } from '@element-plus/icons-vue'
|
|
|
import {
|
|
|
reactive,
|
|
|
- ref
|
|
|
+ ref,
|
|
|
+ nextTick,
|
|
|
+ onMounted
|
|
|
} from 'vue'
|
|
|
import {
|
|
|
getGxMc,
|
|
|
@@ -257,7 +301,40 @@
|
|
|
defineOptions({
|
|
|
name: '06PackingDocuments',
|
|
|
})
|
|
|
+ //班组
|
|
|
+ const BzVisible = ref (false)
|
|
|
+ //
|
|
|
+ const BzVisible2 = ref (false)
|
|
|
+ const selectDataBz = reactive([])
|
|
|
+ const selectDataCY = reactive([])
|
|
|
+const SelectClickBz = (row, column, event) => {
|
|
|
+
|
|
|
+ BzVisible.value = false
|
|
|
+ }
|
|
|
+ const selectBZ = (event) => {
|
|
|
+ if (event.keyCode === 40) { // Enter 或向下箭头
|
|
|
+ setCurrent(selectDataBz[1]);
|
|
|
+
|
|
|
+ } else if (event.keyCode === 38) {
|
|
|
+ setCurrent(selectDataBz[0]);
|
|
|
+
|
|
|
+ } else if (event.keyCode === 13) {
|
|
|
+ BzVisible.value = false
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ const selectCY = (event) => {
|
|
|
+ if (event.keyCode === 40) { // Enter 或向下箭头
|
|
|
+ setCurrent2(selectDataCY[1]);
|
|
|
+
|
|
|
+ } else if (event.keyCode === 38) {
|
|
|
+ setCurrent2(selectDataCY[0]);
|
|
|
|
|
|
+ } else if (event.keyCode === 13) {
|
|
|
+ BzVisible2.value = false
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
// 侧边栏功能
|
|
|
const treeData = reactive([])
|
|
|
const getSideData = async () => {
|
|
|
@@ -536,8 +613,13 @@
|
|
|
|
|
|
const setCurrent = (row) => {
|
|
|
table.value?.setCurrentRow(row)
|
|
|
+ detailData.sczl_bzdh = row.sczl_bzdh
|
|
|
+ detailData.sczl_冲定额 = row.sczl_冲定额
|
|
|
+ }
|
|
|
+ const setCurrent2 = (row) => {
|
|
|
+ table.value?.setCurrentRow(row)
|
|
|
+ detailData.sczl_冲定额 = row.sczl_冲定额
|
|
|
}
|
|
|
-
|
|
|
// 获取详细信息
|
|
|
const getTableInfo = async (id) => {
|
|
|
try {
|
|
|
@@ -582,23 +664,23 @@
|
|
|
}
|
|
|
})
|
|
|
|
|
|
- if (type.value === '新增') {
|
|
|
- console.log(detailData)
|
|
|
- detailData.name = ''
|
|
|
- detailData.sczl_bh = ''
|
|
|
- detailData.sczl_bzdh = ''
|
|
|
- detailData.sczl_desc = ''
|
|
|
- detailData.sczl_jsss = ''
|
|
|
- detailData.sczl_rq = ''
|
|
|
- detailData.table.forEach(row => {
|
|
|
- for (const key in row) {
|
|
|
- row[key] = '' // 清空每行的内容
|
|
|
- }
|
|
|
- })
|
|
|
- } else {
|
|
|
- detailData.UniqId = id
|
|
|
- dialogFormVisible.value = true
|
|
|
- }
|
|
|
+ // if (type.value === '新增') {
|
|
|
+ // console.log(detailData)
|
|
|
+ // detailData.name = ''
|
|
|
+ // detailData.sczl_bh = ''
|
|
|
+ // detailData.sczl_bzdh = ''
|
|
|
+ // detailData.sczl_desc = ''
|
|
|
+ // detailData.sczl_jsss = ''
|
|
|
+ // detailData.sczl_rq = ''
|
|
|
+ // detailData.table.forEach(row => {
|
|
|
+ // for (const key in row) {
|
|
|
+ // row[key] = '' // 清空每行的内容
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // } else {
|
|
|
+ // detailData.UniqId = id
|
|
|
+ // dialogFormVisible.value = true
|
|
|
+ // }
|
|
|
|
|
|
if (type.value === '新增' || type.value === '编辑') {
|
|
|
detailData.UniqId = id
|
|
|
@@ -756,7 +838,7 @@
|
|
|
getSideData()
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ //弹出框回车事件
|
|
|
const handleGetYg = async () => {
|
|
|
if (detailData.sczl_bh == '') {
|
|
|
formElements = document.getElementById('detail-form').elements
|
|
|
@@ -770,6 +852,8 @@
|
|
|
if (response.data.length == 1) {
|
|
|
detailData.name = response.data[0].ygxm
|
|
|
detailData.sczl_bh = response.data[0].员工编号
|
|
|
+ detailData.sczl_jsss = "0"
|
|
|
+ // detailData.sczl_冲定额 = "0"
|
|
|
formElements = document.getElementById('detail-form').elements
|
|
|
formElements[3].focus()
|
|
|
formElements[3].select()
|
|
|
@@ -842,12 +926,26 @@
|
|
|
//班组回车事件
|
|
|
const getBzsubmit = () => {
|
|
|
//弹出选择
|
|
|
- const data = [{'sczl_bzdh':'A班'},{'sczl_bzdh':'B班'}]
|
|
|
- selectData_Bz.splice(0, selectData_Bz.length, ...data)
|
|
|
- if(!dialogSelectVisible_Yg.value){
|
|
|
- dialogSelectVisible_Bz.value=true
|
|
|
- setGXCurrent_Bz(selectData_Bz[0])
|
|
|
- }
|
|
|
+ const data = [{
|
|
|
+ 'sczl_bzdh': 'A班'
|
|
|
+ }, {
|
|
|
+ 'sczl_bzdh': 'B班'
|
|
|
+ }]
|
|
|
+ selectDataBz.splice(0, selectDataBz.length, ...data)
|
|
|
+ BzVisible.value = true
|
|
|
+ setCurrent(data[0])
|
|
|
+ }
|
|
|
+ //冲月定额
|
|
|
+ const getBzsubmit2 = () => {
|
|
|
+ //弹出选择
|
|
|
+ const data = [{
|
|
|
+ 'sczl_冲定额': '是'
|
|
|
+ }, {
|
|
|
+ 'sczl_冲定额': '否'
|
|
|
+ }]
|
|
|
+ selectDataCY.splice(0, selectDataCY.length, ...data)
|
|
|
+ BzVisible2.value = true
|
|
|
+ setCurrent2(data[0])
|
|
|
}
|
|
|
const dialogSelectVisible_Bz = ref(false)
|
|
|
const selectData_Bz = reactive([])
|
|
|
@@ -929,6 +1027,7 @@
|
|
|
const CPIndex = ref(0);
|
|
|
const JYCurrent = ref(0);
|
|
|
const selectCP = (event) => {
|
|
|
+ // console.log(event);
|
|
|
if (event.keyCode === 40) { // 向下箭头
|
|
|
if (CPIndex.value < selectData.length - 1) {
|
|
|
CPIndex.value++;
|
|
|
@@ -947,6 +1046,7 @@
|
|
|
}
|
|
|
} else if (event.keyCode === 13) { // 回车键
|
|
|
dialogSelectVisible.value = false
|
|
|
+ console.log(event);
|
|
|
}
|
|
|
}
|
|
|
// 弹窗确定
|
|
|
@@ -962,60 +1062,57 @@
|
|
|
//新增定额代号
|
|
|
const dedhsearchModel = ref(false)
|
|
|
const dedhtreeData = ref([])
|
|
|
+ const table_dedh =ref()
|
|
|
const _index = ref(null)
|
|
|
// 定额代号回车事件
|
|
|
const getDedhsubmit = async (index, row) => {
|
|
|
+ // const tree = this.$refs.dedhTree;
|
|
|
+ // console.log(tree);
|
|
|
console.log(index)
|
|
|
_index.value = index
|
|
|
dedhsearchModel.value = true;
|
|
|
const getPieceWorks = await getDedh();
|
|
|
console.log(getPieceWorks);
|
|
|
- console.log(22222)
|
|
|
if (getPieceWorks.code === 0) {
|
|
|
- const transformItems = (items) => {
|
|
|
- return items.map(item => ({
|
|
|
- label: `${item.sys_mc}【${item.sys_bh}】`,
|
|
|
- params: {
|
|
|
- code: item.sys_bh
|
|
|
- },
|
|
|
- children: item.bh_mc ? transformItems(item.bh_mc) : []
|
|
|
- }));
|
|
|
- };
|
|
|
-
|
|
|
- const transformedData2 = getPieceWorks.data.map(topItem => ({
|
|
|
- label: `${topItem.sys_mc}【${topItem.sys_bh}】`,
|
|
|
- params: {
|
|
|
- code: topItem.sys_bh
|
|
|
- },
|
|
|
- children: topItem.bh_mc ? transformItems(topItem.bh_mc) : []
|
|
|
- }));
|
|
|
-
|
|
|
+ const transformItems = (items,indexs) => {
|
|
|
+ return items.map((item,index) => ({
|
|
|
+ id: `${indexs}-${index}`,
|
|
|
+ label: `${item.sys_mc}【${item.sys_bh}】`,
|
|
|
+ params: {
|
|
|
+ code: item.sys_bh
|
|
|
+ },
|
|
|
+ children: item.bh_mc ? transformItems(item.bh_mc) : []
|
|
|
+ }));
|
|
|
+ };
|
|
|
+
|
|
|
+ const transformedData2 = getPieceWorks.data.map((topItem,indexs) => ({
|
|
|
+ id: indexs,
|
|
|
+ label: `${topItem.sys_mc}【${topItem.sys_bh}】`,
|
|
|
+ params: {
|
|
|
+ code: topItem.sys_bh
|
|
|
+ },
|
|
|
+ children: topItem.bh_mc ? transformItems(topItem.bh_mc,indexs) : []
|
|
|
+ }));
|
|
|
+
|
|
|
dedhtreeData.value = transformedData2;
|
|
|
+ console.log(transformedData2);
|
|
|
+ nextTick(() => {
|
|
|
+ // 手动设置选中节点,如果默认选中不生效,可以使用此方法
|
|
|
+ if (table_dedh.value) {
|
|
|
+ const tree = table_dedh.value?.$el; // 访问组件实例的 $el
|
|
|
+ if (tree) {
|
|
|
+ // 通过DOM选择器查找节点
|
|
|
+ const node = tree.querySelector('[data-key="0"]');
|
|
|
+ if (node) {
|
|
|
+ node.scrollIntoView();
|
|
|
+ node.focus(); // 假设节点是可聚焦的
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- // if (getPieceWorks.code === 0) {
|
|
|
- // const transformedData2 = getPieceWorks.data.bh_mc.map(item => ({
|
|
|
- // label: `${item.sys_mc}【${item.sys_bh}】`,
|
|
|
- // params: {
|
|
|
- // code: item.sys_bh
|
|
|
- // },
|
|
|
- // children: item.bh_mc?.map(sysItem => ({
|
|
|
- // label: `${sysItem.sys_mc}【${sysItem.sys_bh}】`,
|
|
|
- // params: {
|
|
|
- // code: sysItem.sys_bh
|
|
|
- // },
|
|
|
- // children: sysItem.bh_mc?.map(syssItem => ({
|
|
|
- // label: `${syssItem.sys_mc}【${syssItem.sys_bh}】`,
|
|
|
- // params: {
|
|
|
- // code: syssItem.sys_bh
|
|
|
- // }
|
|
|
- // })) || []
|
|
|
- // })) || []
|
|
|
- // }));
|
|
|
- // dedhtreeData.value = transformedData2;
|
|
|
- // }
|
|
|
};
|
|
|
+
|
|
|
// 点击定额代号
|
|
|
const dedhhandleNodeClick = (node, check) => {
|
|
|
console.log(node);
|
|
|
@@ -1027,7 +1124,7 @@
|
|
|
dedhsearchModel.value = false;
|
|
|
}
|
|
|
// dedhsearchModel.value = false;
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
|
|
|
|
|
|
@@ -1035,76 +1132,76 @@
|
|
|
let flag_Bz = true
|
|
|
let formElements
|
|
|
const moveFocus = (event) => {
|
|
|
- const index = Array.from(formElements).indexOf(event.target)
|
|
|
- const key = event.key
|
|
|
- event.preventDefault()
|
|
|
- switch (index) {
|
|
|
- case 0:
|
|
|
- if (key === 'ArrowDown') {
|
|
|
- formElements[1].focus()
|
|
|
- formElements[1].select()
|
|
|
- } else if (key === 'ArrowUp') {
|
|
|
- formElements[formElements.length - 1].focus()
|
|
|
- formElements[formElements.length - 1].select()
|
|
|
- } else if (key === 'Enter') {
|
|
|
- formElements[1].focus()
|
|
|
- formElements[1].select()
|
|
|
- }
|
|
|
- break
|
|
|
-
|
|
|
- case 1:
|
|
|
- if (key === 'ArrowDown') {
|
|
|
- formElements[3].focus()
|
|
|
- formElements[3].select()
|
|
|
- } else if (key === 'ArrowUp') {
|
|
|
- formElements[0].focus()
|
|
|
- formElements[0].select()
|
|
|
- } else if (key === 'Enter') {
|
|
|
- handleGetYg()
|
|
|
- }
|
|
|
- break
|
|
|
-
|
|
|
- case 3:
|
|
|
- if (key === 'ArrowDown') {
|
|
|
- formElements[4].focus()
|
|
|
- formElements[4].select()
|
|
|
- } else if (key === 'ArrowUp') {
|
|
|
- formElements[1].focus()
|
|
|
- formElements[1].select()
|
|
|
- } else if (key === 'Enter') {
|
|
|
- // getBzsubmit()
|
|
|
- formElements[4].focus()
|
|
|
- formElements[4].select()
|
|
|
- }
|
|
|
- break
|
|
|
-
|
|
|
- case formElements.length - 1:
|
|
|
- if (key === 'ArrowDown') {
|
|
|
- formElements[0].focus()
|
|
|
- formElements[0].select()
|
|
|
- } else if (key === 'ArrowUp') {
|
|
|
- formElements[index - 1].focus()
|
|
|
- formElements[index - 1].select()
|
|
|
- } else if (key === 'Enter') {
|
|
|
- formElements[0].focus()
|
|
|
- formElements[0].select()
|
|
|
- }
|
|
|
- break
|
|
|
+ const index = Array.from(formElements).indexOf(event.target);
|
|
|
+ const key = event.key;
|
|
|
+ event.preventDefault();
|
|
|
+ switch (index) {
|
|
|
+ case 0:
|
|
|
+ if (key === 'ArrowRight') {
|
|
|
+ formElements[1].focus();
|
|
|
+ formElements[1].select();
|
|
|
+ } else if (key === 'ArrowLeft') {
|
|
|
+ formElements[formElements.length - 1].focus();
|
|
|
+ formElements[formElements.length - 1].select();
|
|
|
+ } else if (key === 'Enter') {
|
|
|
+ formElements[1].focus();
|
|
|
+ formElements[1].select();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 1:
|
|
|
+ if (key === 'ArrowRight') {
|
|
|
+ formElements[3].focus();
|
|
|
+ formElements[3].select();
|
|
|
+ } else if (key === 'ArrowLeft') {
|
|
|
+ formElements[0].focus();
|
|
|
+ formElements[0].select();
|
|
|
+ } else if (key === 'Enter') {
|
|
|
+ handleGetYg();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 3:
|
|
|
+ if (key === 'ArrowRight') {
|
|
|
+ formElements[4].focus();
|
|
|
+ formElements[4].select();
|
|
|
+ } else if (key === 'ArrowLeft') {
|
|
|
+ formElements[1].focus();
|
|
|
+ formElements[1].select();
|
|
|
+ } else if (key === 'Enter') {
|
|
|
+ formElements[4].focus();
|
|
|
+ formElements[4].select();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case formElements.length - 1:
|
|
|
+ if (key === 'ArrowRight') {
|
|
|
+ formElements[0].focus();
|
|
|
+ formElements[0].select();
|
|
|
+ } else if (key === 'ArrowLeft') {
|
|
|
+ formElements[index - 1].focus();
|
|
|
+ formElements[index - 1].select();
|
|
|
+ } else if (key === 'Enter') {
|
|
|
+ formElements[0].focus();
|
|
|
+ formElements[0].select();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ default:
|
|
|
+ if (key === 'ArrowRight') {
|
|
|
+ formElements[index + 1].focus();
|
|
|
+ formElements[index + 1].select();
|
|
|
+ } else if (key === 'ArrowLeft') {
|
|
|
+ formElements[index - 1].focus();
|
|
|
+ formElements[index - 1].select();
|
|
|
+ } else if (key === 'Enter') {
|
|
|
+ formElements[index + 1].focus();
|
|
|
+ formElements[index + 1].select();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+};
|
|
|
|
|
|
- default:
|
|
|
- if (key === 'ArrowDown') {
|
|
|
- formElements[index + 1].focus()
|
|
|
- formElements[index + 1].select()
|
|
|
- } else if (key === 'ArrowUp') {
|
|
|
- formElements[index - 1].focus()
|
|
|
- formElements[index - 1].select()
|
|
|
- } else if (key === 'Enter') {
|
|
|
- formElements[index + 1].focus()
|
|
|
- formElements[index + 1].select()
|
|
|
- }
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|