|
|
@@ -1716,7 +1716,7 @@
|
|
|
<el-input v-model="JPformdata['工序号']" style="width: 110px;" id="工序号" placeholder="Enter回车" @blur="JPgetGXsubmit()" @keydown="JPent($event)"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="工序名称" prop="customerName" class="mab" label-width="100">
|
|
|
- <el-input v-model="JPformdata['工序名称']" readonly style="width: 260px;" id="工序名称" />
|
|
|
+ <el-input v-model="JPformdata['工序名称']" readonly style="width: 300px;" id="工序名称" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="检验类别:" prop="customerCode" class="mab" label-width="90">
|
|
|
<el-input v-model="JPformdata['检验类别']" placeholder="Enter回车" style="width: 100px;" id="检验类别" @keydown="JPent($event)"/>
|
|
|
@@ -1732,7 +1732,7 @@
|
|
|
style="width: 110px;" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="机器:" prop="customerCode" class="mab" label-width="100">
|
|
|
- <el-input v-model="JPformdata['机器']" style="width: 70px;" id="机器" @keydown="JPent($event)"/>
|
|
|
+ <el-input v-model="JPformdata['机器']" style="width: 110px;" placeholder="Enter回车" id="机器" @keydown="JPent($event)"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="流程标牌:" prop="customerCode" class="mab" label-width="100">
|
|
|
<el-input v-model="JPformdata['流程标牌']" style="width: 80px;" id="流程标牌" @keydown="JPent($event)"/>
|
|
|
@@ -1752,7 +1752,7 @@
|
|
|
<el-form-item label="换膜补产工时" prop="customerCode" class="mab" label-width="110">
|
|
|
<el-input v-model="JPformdata['换膜补产工时']" style="width: 100px;" id="换膜总工时" @keydown="JPent($event)"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="保养工时:" prop="customerCode" class="mab" label-width="250">
|
|
|
+ <el-form-item label="保养工时:" prop="customerCode" class="mab" label-width="290">
|
|
|
<el-input v-model="JPformdata['保养工时']" style="width: 100px;" id="保养工时" @keydown="JPent($event)"/>
|
|
|
</el-form-item>
|
|
|
</el-row>
|
|
|
@@ -1764,7 +1764,7 @@
|
|
|
<el-form-item label="异常类型:" prop="customerCode" class="mab" label-width="110">
|
|
|
<el-input v-model="JPformdata['异常类型']" style="width: 100px;" id="异常类型" @keydown="JPent($event)"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="异常补贴工时:" prop="customerCode" class="mab" label-width="250">
|
|
|
+ <el-form-item label="异常补贴工时:" prop="customerCode" class="mab" label-width="290">
|
|
|
<el-input v-model="JPformdata['异常补贴工时']" style="width: 100px;" id="异常补贴工时" @keydown="JPent($event)"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="通电工时" prop="customerCode" class="mab" label-width="100">
|
|
|
@@ -1774,7 +1774,7 @@
|
|
|
|
|
|
<el-row :gutter="24">
|
|
|
<el-form-item label="定额代号:" prop="customerCode" class="mab" label-width="90">
|
|
|
- <el-input v-model="JPformdata['定额代号']" style="width: 160px;" id="定额代号" @keydown="JPent($event)"/>
|
|
|
+ <el-input v-model="JPformdata['定额代号']" style="width: 160px;" placeholder="Enter回车" id="定额代号" @keydown="JPent($event)"/>
|
|
|
</el-form-item>
|
|
|
</el-row>
|
|
|
|
|
|
@@ -1797,7 +1797,7 @@
|
|
|
<!-- 空列,用于对齐 -->
|
|
|
</el-col>
|
|
|
<el-col v-for="i in 10" :key="i" :span="2">
|
|
|
- <el-input v-model="JPformdata['组员' + i]['姓名']" :id="'xm' + i" @keydown="JPent($event)"/>
|
|
|
+ <el-input v-model="JPformdata['组员' + i]['姓名']" :id="'xm' + i" readonly/>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
|
|
|
@@ -1806,7 +1806,7 @@
|
|
|
<!-- 空列,用于对齐 -->
|
|
|
</el-col>
|
|
|
<el-col v-for="i in 10" :key="i" :span="2">
|
|
|
- <el-input v-model="JPformdata['组员' + i]['比例']" :id="'bl' + i" @keydown="JPent($event)" />
|
|
|
+ <el-input v-model="JPformdata['组员' + i]['比例']" :id="'bl' + i" @keydown="JPent($event,i,'比例')" />
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
@@ -1832,6 +1832,15 @@
|
|
|
</el-table>
|
|
|
</el-dialog>
|
|
|
|
|
|
+ <!-- JP检品独立 机台机器-->
|
|
|
+ <el-dialog v-model="JPdialogVisible_JT" title="机台机器选择" destroy-on-close width="600px" style="height: 600px;" @keydown="JPselect_JT($event)">
|
|
|
+ <el-table tooltip-effect="dark" :data="JPselectData_JT" row-key="ID" highlight-current-row="true"
|
|
|
+ border style="width:100%" ref="table_JT" :row-style="{ height: '20px' }" :cell-style="{ padding: '0px' }"
|
|
|
+ :header-row-style="{ height: '20px' }" :header-cell-style="{ padding: '0px' }" @row-dblclick="JPhandleSelectClick_JT">
|
|
|
+ <el-table-column prop="机台" label="机台" />
|
|
|
+ </el-table>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
|
|
|
<!-- JP检品独立 新增印件选择 -->
|
|
|
<el-dialog v-model="JPdialogSelectVisible_Gx" title="选择" destroy-on-close width="600px" style="margin-top: 2%;" @keydown="JPselect_xz($event)" >
|
|
|
@@ -3191,6 +3200,7 @@ const JPgytableDatadoubleClick = async (row) => {
|
|
|
// Object.assign(JPformdataedit,row);
|
|
|
JPchanliangVisibleedit.value = true
|
|
|
}
|
|
|
+
|
|
|
//当日上报产量确定
|
|
|
const JPenterDialogedit = async () => {
|
|
|
// console.log(JPformdataedit)
|
|
|
@@ -3305,7 +3315,6 @@ const JPformdata = reactive({
|
|
|
|
|
|
//班组产量提报 JP检品机 班组产量提报确定
|
|
|
const JPenterDialog = async() => {
|
|
|
- // console.log(JPformdata)
|
|
|
const JPformattedData = {
|
|
|
sczl_jtbh:JTMC+'#',
|
|
|
sczl_gdbh: JPformdata['工单编号'],
|
|
|
@@ -3380,6 +3389,7 @@ const JPenterDialog = async() => {
|
|
|
JPformdata['异常类型'] = ''
|
|
|
JPformdata['异常补贴工时'] = ''
|
|
|
JPformdata['通电工时'] = ''
|
|
|
+ JPformdata['计件箱数'] = ''
|
|
|
} else {
|
|
|
ElMessage({type: 'error',message: '添加失败'})
|
|
|
}
|
|
|
@@ -3711,6 +3721,52 @@ const JPentedit = async (event,key,val) => {
|
|
|
|
|
|
|
|
|
|
|
|
+/*
|
|
|
+ 机台机器选择
|
|
|
+*/
|
|
|
+const JPdialogVisible_JT = ref(false) // 弹窗
|
|
|
+const JPselectData_JT = reactive([]) // table data
|
|
|
+const currentIndex_JT = ref(0);
|
|
|
+//双击事件
|
|
|
+const JPhandleSelectClick_JT = async (row) => {
|
|
|
+ // 使用 split() 截取 '机器' 字符串中 '-->' 前面的部分
|
|
|
+ const machineName = row['机台'].split('-->')[0];
|
|
|
+ JPformdata['机器'] = machineName;
|
|
|
+}
|
|
|
+// 键盘事件
|
|
|
+const JPselect_JT = async (event) => {
|
|
|
+ if (event.keyCode === 40) { // 向下箭头
|
|
|
+ if (currentIndex_JT.value < JPselectData_JT.length - 1) {
|
|
|
+ currentIndex_JT.value++;
|
|
|
+ setCurrent_JT(JPselectData_JT[currentIndex_JT.value]);
|
|
|
+ } else {
|
|
|
+ currentIndex_JT.value = 0;
|
|
|
+ setCurrent_JT(JPselectData_JT[currentIndex_JT.value]); // 到达最后一行时回到第一行
|
|
|
+ }
|
|
|
+ } else if (event.keyCode === 38) { // 向上箭头
|
|
|
+ if (currentIndex_JT.value > 0) {
|
|
|
+ currentIndex_JT.value--;
|
|
|
+ setCurrent_JT(JPselectData_JT[currentIndex_JT.value]);
|
|
|
+ } else {
|
|
|
+ currentIndex_JT.value = JPselectData_JT.length - 1;
|
|
|
+ setCurrent_JT(JPselectData_JT[currentIndex_JT.value]); // 到达第一行时回到最后一行
|
|
|
+ }
|
|
|
+ } else if (event.keyCode === 13) { // 回车键
|
|
|
+ JPdialogVisible_JT.value = false;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// ref属性
|
|
|
+const table_JT = ref();
|
|
|
+
|
|
|
+const setCurrent_JT = (row) => {
|
|
|
+ setTimeout(() => {
|
|
|
+ table_JT.value?.setCurrentRow(row);
|
|
|
+ // 使用 split() 截取 '机器' 字符串中 '-->' 前面的部分
|
|
|
+ const machineName = row['机台'].split('-->')[0];
|
|
|
+ JPformdata['机器'] = machineName;
|
|
|
+ });
|
|
|
+}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -3728,7 +3784,8 @@ const onADD = async() => {
|
|
|
getMachineReportInfos();
|
|
|
|
|
|
//默认显示清空
|
|
|
- JPformdata['机器'] = JTMC+'#'
|
|
|
+ // JPformdata['机器'] = JTMC+'#'
|
|
|
+
|
|
|
// JPformdata['换膜补产工时'] = ''
|
|
|
} else {
|
|
|
type2.value="create"
|
|
|
@@ -3990,28 +4047,84 @@ const rqHandleFocus = () => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+//回车事件
|
|
|
const JPent = async (event,key,val) => {
|
|
|
if(event.keyCode === 13){
|
|
|
//组员及比例分配
|
|
|
- if(event.keyCode === 13 && val === '1'){
|
|
|
- let bzyg=''
|
|
|
- bzyg=`组员${key}`
|
|
|
- let bzxm=''
|
|
|
- bzxm=`组员${key}`
|
|
|
- if(JPformdata[bzyg]['编号']){
|
|
|
- const getYg_response = await getYg({sczl_bh:JPformdata[bzyg]['编号']});
|
|
|
- console.log(getYg_response)
|
|
|
- if (getYg_response.code === 0) {
|
|
|
- if(getYg_response.data.length === 1){
|
|
|
- JPformdata[bzyg]['姓名'] = getYg_response.data[0].ygxm
|
|
|
- JPformdata[bzyg]['编号'] = getYg_response.data[0].员工编号
|
|
|
- }else{
|
|
|
- JPblModellist.value = true;
|
|
|
- JPemployeeDatalist.value = getYg_response.data // 假设响应数据是数组
|
|
|
- }
|
|
|
+ if (val === '1') {
|
|
|
+ let bzyg = `组员${key}`;
|
|
|
+
|
|
|
+ if (JPformdata[bzyg] && JPformdata[bzyg]['编号']) {
|
|
|
+ try {
|
|
|
+ const getYg_response = await getYg({ sczl_bh: JPformdata[bzyg]['编号'] });
|
|
|
+ console.log(getYg_response);
|
|
|
+
|
|
|
+ if (getYg_response.code === 0) {
|
|
|
+ if (getYg_response.data.length === 1) {
|
|
|
+ JPformdata[bzyg]['姓名'] = getYg_response.data[0].ygxm;
|
|
|
+ JPformdata[bzyg]['编号'] = getYg_response.data[0].员工编号;
|
|
|
+ } else {
|
|
|
+ // 显示员工选择列表
|
|
|
+ JPblModellist.value = true;
|
|
|
+ JPemployeeDatalist.value = getYg_response.data;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error("获取员工信息失败", error);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 阻止回车键的默认行为
|
|
|
+ event.preventDefault();
|
|
|
+ event.stopPropagation();
|
|
|
+
|
|
|
+ // 获取所有以 "bh" 开头的输入框
|
|
|
+ const inputs = document.querySelectorAll('input[id^="bh"]');
|
|
|
+ const currentIndex = Array.from(inputs).indexOf(event.target); // 获取当前触发事件的input索引
|
|
|
+
|
|
|
+ // 判断是否是最后一个输入框
|
|
|
+ if (currentIndex === inputs.length - 1) {
|
|
|
+ console.log('当前是最后一个输入框');
|
|
|
+ if(JPblModellist.value === false){
|
|
|
+ // 弹出存盘确认框
|
|
|
+ ElMessageBox.confirm('数据存盘?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ // 用户点击“确定”,执行存盘操作
|
|
|
+ JPenterDialog(); // 存盘函数
|
|
|
+ }).catch(() => {
|
|
|
+ console.log('用户取消了存盘操作');
|
|
|
+ });
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // if (event.keyCode === 13 && val === '比例') {
|
|
|
+ // event.preventDefault(); // 阻止回车键的默认行为
|
|
|
+ // event.stopPropagation(); // 阻止事件冒泡
|
|
|
+
|
|
|
+ // // 获取所有 input 元素
|
|
|
+ // const inputs = document.querySelectorAll('input'); // 假设所有的input元素都在文档中
|
|
|
+ // const currentIndex = Array.from(inputs).indexOf(event.target); // 获取当前触发事件的input索引
|
|
|
+
|
|
|
+ // // 判断是否是最后一个 input
|
|
|
+ // if (currentIndex === inputs.length - 1) {
|
|
|
+ // console.log('当前是最后一个输入框');
|
|
|
+ // ElMessageBox.confirm('数据存盘?', '提示', {
|
|
|
+ // confirmButtonText: '确定',
|
|
|
+ // cancelButtonText: '取消',
|
|
|
+ // type: 'warning'
|
|
|
+ // }).then(() => {
|
|
|
+ // // console.log("保存");
|
|
|
+ // JPenterDialog()
|
|
|
+ // }).catch(() => {
|
|
|
+ // console.log('用户取消了存盘操作');
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
if(event.target.id === '检验类别'){
|
|
|
JPdialogSelectVisible_LX.value = true
|
|
|
}
|
|
|
@@ -4049,7 +4162,7 @@ const JPent = async (event,key,val) => {
|
|
|
if(event.target.id === '工序号'){
|
|
|
document.getElementById('工序名称').style.color = 'red';
|
|
|
//弹出选择
|
|
|
- ChanliangProcessDetail({gdbh:JPformdata['工单编号'],yjno:JPformdata['印件号'],machine:''}).then(response=>{
|
|
|
+ ChanliangProcessDetail({gdbh:JPformdata['工单编号'],yjno:JPformdata['印件号'],machine: CJMC.value}).then(response=>{
|
|
|
// console.log(response)
|
|
|
if (response.code === 0) {
|
|
|
if(response.data){
|
|
|
@@ -4069,6 +4182,33 @@ const JPent = async (event,key,val) => {
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
+ if (event.target.id === '机器') {
|
|
|
+ // 获取当前输入框的值
|
|
|
+ const machineInputValue = JPformdata['机器'];
|
|
|
+
|
|
|
+ // 调用接口获取机台数据
|
|
|
+ const MachineListdata = await gdzl_MachineList({ address: CJMC.value });
|
|
|
+ console.log("MachineListdata", MachineListdata);
|
|
|
+
|
|
|
+ //机台列表数据
|
|
|
+ JPselectData_JT.value = MachineListdata.data.map((item, index) => ({
|
|
|
+ ID: index + 1,
|
|
|
+ 机台: item,
|
|
|
+ }));
|
|
|
+ JPselectData_JT.splice(0, JPselectData_JT.length, ...JPselectData_JT.value);
|
|
|
+
|
|
|
+ // 检查输入的机器名称是否存在于接口返回的数据中
|
|
|
+ const isMachineValid = JPselectData_JT.value.some(item => item.机台 === machineInputValue);
|
|
|
+ //完全匹配时,输入错误在弹窗
|
|
|
+ // const isMachineValid = JPselectData_JT.value.some(item => item.机台.split('-->')[0] === machineInputValue);
|
|
|
+ if (!isMachineValid) {
|
|
|
+ // 如果机器名称无效,则弹出弹窗
|
|
|
+ JPdialogVisible_JT.value = true;
|
|
|
+ // console.log('输入的机器不在列表中,弹出弹窗');
|
|
|
+ } else {
|
|
|
+ // console.log('输入的机器匹配列表,弹窗不显示');
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
const inputs = document.getElementsByTagName('input');
|