|
|
@@ -25,6 +25,7 @@
|
|
|
<el-button type="primary" icon="copy-document" class="bt"@click="dialogMrhjtj = true">每日核检统计</el-button>
|
|
|
<el-button type="primary" icon="copy-document" class="bt" @click="showGdzjfptj">工单质检废品统计</el-button>
|
|
|
<el-button type="primary" icon="edit" @click="gdlcdcxconlick" class="bt" title="流程单查询">流程单查询</el-button>
|
|
|
+ <el-button type="primary" icon="edit" @click="scpconClick" class="bt" title="工单生产批次信息查询">工单生产批次信息查询</el-button>
|
|
|
<el-button type="primary" icon="delete" class="bt" @click="handleDelete">删除</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
@@ -182,7 +183,160 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <!--工单生产批次信息查询【弹窗】-->
|
|
|
+ <el-dialog v-model="scpconlist" title="工单生产批次信息查询" style="width: 100%;height: 100%;margin: 0px;padding: 0px;">
|
|
|
+ <el-button type="primary" @click="ontuicclicks" style="color: white;margin-left: 20px;" title="退出">退出</el-button>
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ width: 60%;
|
|
|
+ height: 470px;
|
|
|
+ position: fixed;
|
|
|
+ left: 25%;
|
|
|
+ padding: 20px;
|
|
|
+ border-radius: 8px;
|
|
|
+ background-color: #fff;
|
|
|
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);">
|
|
|
+ <div style="margin-top: 10px;">
|
|
|
+ <!-- 提示信息 -->
|
|
|
+ <hr>
|
|
|
+ <p style="font-size: 14px; color: red; margin: 10px 0;">搜索栏目为空,则从最近2周完工的工单中选择</p>
|
|
|
+ <p style="font-size: 14px; color: red; margin: 10px 0;">否则,以栏目值为关键字,从工单编号、产品名称、客户名称中选择</p>
|
|
|
+ <hr>
|
|
|
+
|
|
|
+ <!-- 输入框和按钮 -->
|
|
|
+ <div style="display: flex; align-items: center; margin-top: 10px;">
|
|
|
+ <el-input v-model="searchInfolcd" placeholder="Enter回车搜索工单编号" @keydown="Enterkeysearch" id="searchInfo" style="height: 40px;flex: 1;"></el-input>
|
|
|
+ <el-button type="primary" title="搜索" icon="el-icon-search" style="width: 70px;height: 40px;font-size: 18px;" @click="onSubmitlcd" >搜索</el-button>
|
|
|
+ <el-button type="primary" title="查看" icon="el-icon-search" style="width: 110px;height: 40px;font-size: 18px;" @click="onstatsuclick" >查看流程单</el-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 表格展示区域 -->
|
|
|
+ <div class="gva-table-box" style="margin-top: 15px;">
|
|
|
+ <el-table
|
|
|
+ ref="multipleTable"
|
|
|
+ style="width: 100%; height: 30vh; verflow: auto;"
|
|
|
+ :row-style="{ height: '20px' }" :header-cell-style="{ padding: '0px' }"
|
|
|
+ :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
|
|
|
+ :data="tableDatalcd"
|
|
|
+ :border="true"
|
|
|
+ :tooltip-effect="'dark'"
|
|
|
+ row-key="ID"
|
|
|
+ highlight-current-row
|
|
|
+ @row-click="tableRowClicklcd"
|
|
|
+ @row-dblclick="updateCompanyFunclcd"
|
|
|
+ @selection-change="handleSelectionChange">
|
|
|
+ <el-table-column align="left" label="工单编号" width="115" prop="Gd_gdbh" />
|
|
|
+ <el-table-column align="left" label="行号" width="60" prop="行号" />
|
|
|
+ <el-table-column align="left" label="工序名称" prop="Gd_cpmc" />
|
|
|
+ <!-- <el-table-column prop="工单" label="工单编号-行号-工序名称" align="left" sortable show-overflow-tooltipmin-width="300"/> -->
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 机台生产日报表维护弹窗 -->
|
|
|
+ <el-dialog v-model="popdialog" title="机台生产日报表维护" destroy-on-close width="90%" style="height: 92%; margin-left: 5%; margin-top: 1%;">
|
|
|
+ <div>
|
|
|
+ <!-- 顶层布局 -->
|
|
|
+ <layout>
|
|
|
+ <!-- 顶部的搜索区域 -->
|
|
|
+ <layout-header>
|
|
|
+ <el-form ref="elSearchFormRef" class="demo-form-inline" :rules="searchRule">
|
|
|
+ <!-- 添加按钮 -->
|
|
|
+ <el-button type="primary" icon="edit" style="color: white;margin-left: 20px;" @click="ontuicclick" class="bt" title="退出">退出</el-button>
|
|
|
+ </el-form>
|
|
|
+ </layout-header>
|
|
|
+
|
|
|
+ <!-- 左右布局 -->
|
|
|
+ <layout style="height: calc(100% - 50px); display: flex;">
|
|
|
+ <!-- 左侧树形区域 -->
|
|
|
+ <layout-sider style="width: 140px; margin-right: 10px; overflow: hidden;height: 584px;">
|
|
|
+ <div class="JKWTree-tree" style="height: 100%; max-height: 100vh; overflow-y: auto;">
|
|
|
+ <h3></h3>
|
|
|
+ <el-tree
|
|
|
+ :data="treeDatalcd"
|
|
|
+ node-key="num"
|
|
|
+ highlight-current
|
|
|
+ :props="defaultProps"
|
|
|
+ @node-click="handleNodeClicklcd"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </layout-sider>
|
|
|
+
|
|
|
+
|
|
|
+ <!-- 右侧表格区域 -->
|
|
|
+ <layout-content style="flex: 1; overflow: auto;">
|
|
|
+ <el-main>
|
|
|
+ <div style="width: 100%; font-family: Arial, sans-serif; font-size: 14px;">
|
|
|
+ <div style="display: flex; justify-content: space-between; margin-bottom: 10px;">
|
|
|
+ <p style="flex: 0.4; margin: 0;">工单编号:<span style="color: red;">{{ _GetorderDetail['Gd_gdbh'] }}</span></p>
|
|
|
+ <p style="flex: 0.3; margin: 0;">产品代号:<span style="color: red;">{{ _GetorderDetail['Gd_cpdh'] }}</span></p>
|
|
|
+ <p style="flex: 1; margin: 0;">产品名称:<span style="color: red;">{{ _GetorderDetail['Gd_cpmc'] }}</span></p>
|
|
|
+ </div>
|
|
|
+ <div style="display: flex; justify-content: space-between; margin-bottom: 10px;">
|
|
|
+ <p style="flex: 0.4; margin: 0;">订单数量:<span style="color: red;">{{ _GetorderDetail['订单数量'] }}</span></p>
|
|
|
+ <p style="flex: 0.3; margin: 0;">实际投料:<span style="color: red;">{{ _GetorderDetail['实际投料'] }}</span></p>
|
|
|
+ <p style="flex: 1; margin: 0;">
|
|
|
+ 单位:<span style="color: red;">{{ _GetorderDetail['计量单位'] }}</span>
|
|
|
+ 目标合格率:<span style="color: red;">{{ _GetorderDetail['投料率'] }}</span>
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <el-tabs v-model="activeName" @tab-click="handleClick">
|
|
|
+ <el-tab-pane label="工艺及生产班组" @click="showTable('工艺及生产班组')" name="first">
|
|
|
+ <el-table tooltip-effect="dark" :data="lcdtableData" row-key="ID"
|
|
|
+ highlight-current-row="true"
|
|
|
+ :row-style="{ height: '0px' }" :header-cell-style="{ padding: '0px' }"
|
|
|
+ :cell-style="{ padding: '0px' }" :header-row-style="{ height: '0px' }"
|
|
|
+ border :show-overflow-tooltip="true" :cell-class-name="planUsageCellClass"
|
|
|
+ style="width: 100%;height: 56vh" ref="tablesczl_gxmc"
|
|
|
+ @row-dblclick="gyscbzSelectClick">
|
|
|
+ <el-table-column align="left" label="流程单号" width="81" prop="流程单号" />
|
|
|
+ <el-table-column align="left" label="工序号" width="68" prop="工序号" />
|
|
|
+ <el-table-column align="left" label="工序名称" width="240" prop="工序名称" />
|
|
|
+ <el-table-column align="left" label="生产日期" width="120" prop="生产日期" />
|
|
|
+ <el-table-column align="left" label="机台编号" width="81" prop="机台编号" />
|
|
|
+ <el-table-column align="left" label="班组人员01" width="105" :formatter="(row) => `${row.sczl_bh1 || ''} ${row.name1 || ''}`"/>
|
|
|
+ <el-table-column align="left" label="班组人员02" width="105" :formatter="(row) => `${row.sczl_bh2 || ''} ${row.name2 || ''}`"/>
|
|
|
+ <el-table-column align="left" label="班组人员03" width="105" :formatter="(row) => `${row.sczl_bh3 || ''} ${row.name3 || ''}`"/>
|
|
|
+ <el-table-column align="left" label="班组人员04" width="105" :formatter="(row) => `${row.sczl_bh4 || ''} ${row.name4 || ''}`"/>
|
|
|
+ <el-table-column align="left" label="班组人员05" width="105" :formatter="(row) => `${row.sczl_bh5 || ''} ${row.name5 || ''}`"/>
|
|
|
+ <el-table-column align="left" label="班组人员06" width="105" :formatter="(row) => `${row.sczl_bh6 || ''} ${row.name6 || ''}`"/>
|
|
|
+ <el-table-column align="left" label="班组人员07" width="105" :formatter="(row) => `${row.sczl_bh7 || ''} ${row.name7 || ''}`"/>
|
|
|
+ <el-table-column align="left" label="班组人员08" width="105" :formatter="(row) => `${row.sczl_bh8 || ''} ${row.name8 || ''}`"/>
|
|
|
+ <el-table-column align="left" label="班组人员09" width="105" :formatter="(row) => `${row.sczl_bh9 || ''} ${row.name9 || ''}`"/>
|
|
|
+ <el-table-column align="left" label="班组人员10" width="105" :formatter="(row) => `${row.sczl_bh10 || ''} ${row.name10 || ''}`"/>
|
|
|
+ </el-table>
|
|
|
+ </el-tab-pane>
|
|
|
+
|
|
|
+ <el-tab-pane label="制程异常记录" @click="showTable('制程异常记录')" name="second">
|
|
|
+ <el-table tooltip-effect="dark" :data="zcycjltableData" row-key="ID"
|
|
|
+ highlight-current-row="true"
|
|
|
+ :row-style="{ height: '0px' }" :header-cell-style="{ padding: '0px' }"
|
|
|
+ :cell-style="{ padding: '0px' }" :header-row-style="{ height: '0px' }"
|
|
|
+ border :show-overflow-tooltip="true" :cell-class-name="planUsageCellClass"
|
|
|
+ style="width: 100%;height: 65vh" ref="tablzcycjl_gxmc"
|
|
|
+ @row-dblclick="zcycjlSelectClick">
|
|
|
+ <el-table-column align="left" label="流程单号" width="100" prop="流程单号" />
|
|
|
+ <el-table-column align="left" label="数量" width="100" prop="数量" />
|
|
|
+ <el-table-column align="left" label="异常备注" width="400" prop="缺陷备注" />
|
|
|
+ <el-table-column align="left" label="用户" width="160" prop="用户" />
|
|
|
+ </el-table>
|
|
|
+ </el-tab-pane>
|
|
|
+
|
|
|
+ </el-tabs>
|
|
|
+ </el-main>
|
|
|
+ </layout-content>
|
|
|
+ </layout>
|
|
|
+ </layout>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+
|
|
|
<!-- 废品类别弹出 -->
|
|
|
<el-dialog v-model="dialogSelectVisible1" id="tableFplb" @keydown="ent($event)" style="margin-top: 5%;" >
|
|
|
<el-form>
|
|
|
@@ -314,6 +468,13 @@
|
|
|
import Meirihejiantongji from '@/view/performance/09-workOrderVerification/componets/meirihejiantongji.vue'
|
|
|
import Gongdanzhijianfeipintongji from '@/view/performance/09-workOrderVerification/componets/gongdanzhijianfeipintongji.vue'
|
|
|
import Shebeizhuangtai from '@/view/performance/09-workOrderVerification/componets/shebeizhuangtai.vue'
|
|
|
+ import {
|
|
|
+ StaGetOrderList,
|
|
|
+ StaGetList,
|
|
|
+ StaProcessList,
|
|
|
+ StaGetOrderDetail,
|
|
|
+ StaProcessAnomaly,
|
|
|
+ } from '@/api/mes/job'
|
|
|
import {Layout,LayoutContent,LayoutHeader,LayoutSider} from '@arco-design/web-vue'
|
|
|
import {useUserStore} from '@/pinia/modules/user'
|
|
|
const userStore = useUserStore()
|
|
|
@@ -376,7 +537,7 @@
|
|
|
const tableData = reactive([])
|
|
|
const total = ref(0)
|
|
|
const page = ref(1)
|
|
|
- const limit = ref(10)
|
|
|
+ const limit = ref(50)
|
|
|
const searchInfo = ref('')
|
|
|
const params = {
|
|
|
date: '',
|
|
|
@@ -569,6 +730,159 @@ const gd_lcdCancel = async () => {
|
|
|
|
|
|
|
|
|
|
|
|
+/*
|
|
|
+ 工单生产批次信息查询
|
|
|
+ console.log(currentRow.gdbh)
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+/*
|
|
|
+ 工单生产批次信息查询
|
|
|
+*/
|
|
|
+const scpconlist = ref(false);
|
|
|
+const scpconClick = async () => {
|
|
|
+ console.log(currentRow.gdbh)
|
|
|
+ searchInfolcd.value = currentRow.gdbh
|
|
|
+ scpconlist.value = true;
|
|
|
+ tableDatalcd.splice(0,tableDatalcd.length,...[]);//表格数据
|
|
|
+ onSubmitlcd()//调用接口
|
|
|
+}
|
|
|
+//进入页面默认光标加载
|
|
|
+setTimeout(() => {
|
|
|
+ const inputElement = document.getElementById('searchInfo');
|
|
|
+ if (inputElement) {
|
|
|
+ inputElement.focus();
|
|
|
+ }
|
|
|
+}, 100);
|
|
|
+
|
|
|
+//搜索
|
|
|
+const searchInfolcd = ref('');
|
|
|
+const tableDatalcd = reactive([])
|
|
|
+//查询按钮
|
|
|
+const onSubmitlcd = () => {
|
|
|
+ _StaGetOrderList()
|
|
|
+};
|
|
|
+//搜索回车
|
|
|
+const Enterkeysearch = (event) => {
|
|
|
+ if (event.key === 'Enter') {
|
|
|
+ _StaGetOrderList();
|
|
|
+ }
|
|
|
+};
|
|
|
+//调用接口
|
|
|
+const _StaGetOrderList = async (node) => {
|
|
|
+ const StaGetOrderListdata = await StaGetOrderList({search:searchInfolcd.value});
|
|
|
+ console.log(StaGetOrderListdata)
|
|
|
+ if (StaGetOrderListdata.data === null) {
|
|
|
+ ElMessage({
|
|
|
+ type: 'warning',
|
|
|
+ message: '未搜索具体查询条件',
|
|
|
+ customClass: 'custom-message', // 添加自定义类名
|
|
|
+ duration: 3000 // 可选:设置消息显示的持续时间(单位:毫秒)
|
|
|
+ });
|
|
|
+ }
|
|
|
+ tableDatalcd.splice(0,tableDatalcd.length,...StaGetOrderListdata.data);//表格数据
|
|
|
+};
|
|
|
+
|
|
|
+// 树形节点属性映射
|
|
|
+const treeDatalcd = reactive([]);
|
|
|
+const defaultProps = {
|
|
|
+ label: '流程单',
|
|
|
+ children: 'children',
|
|
|
+};
|
|
|
+//全局调用工单编号、印件号
|
|
|
+const _Gd_gdbhlcd = ref(null)
|
|
|
+const _Gd_yjnolcd = ref(null)
|
|
|
+const _GetorderDetail = ref(null)
|
|
|
+
|
|
|
+
|
|
|
+/*
|
|
|
+ 弹窗页面
|
|
|
+*/
|
|
|
+const popdialog = ref(false);
|
|
|
+const currentRows = ref('');
|
|
|
+// 获取当前行数据
|
|
|
+const tableRowClicklcd = (row) => {
|
|
|
+ currentRows.value = row; // 保存当前选中行
|
|
|
+};
|
|
|
+
|
|
|
+// 按钮点击逻辑
|
|
|
+const onstatsuclick = async () => {
|
|
|
+ console.log(currentRows)
|
|
|
+ if (!currentRows.value) {
|
|
|
+ ElMessage({
|
|
|
+ type: "warning",
|
|
|
+ message: "请先点击选择一行数据",
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ await updateCompanyFunclcd(currentRows.value);
|
|
|
+};
|
|
|
+//双击
|
|
|
+const updateCompanyFunclcd = async (row) => {
|
|
|
+ console.log("双击",row)
|
|
|
+ _Gd_gdbhlcd.value = row['Gd_gdbh']
|
|
|
+ _Gd_yjnolcd.value =row['行号']
|
|
|
+
|
|
|
+ const StaGetOrderDetaildata = await StaGetOrderDetail({ gdbh: row['Gd_gdbh'], yjno: row['行号'] });
|
|
|
+ let resultData = StaGetOrderDetaildata.data;
|
|
|
+ // 遍历对象,将 null 值替换为空字符串
|
|
|
+ Object.keys(resultData).forEach((key) => {
|
|
|
+ if (resultData[key] === null) {
|
|
|
+ resultData[key] = '';
|
|
|
+ }
|
|
|
+ });
|
|
|
+ _GetorderDetail.value = resultData;
|
|
|
+ // console.log("_GetorderDetail.value", _GetorderDetail.value);
|
|
|
+ _StaGetList(row)
|
|
|
+}
|
|
|
+
|
|
|
+//左侧树形节点点击事件
|
|
|
+const handleNodeClicklcd = (node) => {
|
|
|
+ _StaProcessList(node['num'])
|
|
|
+ _StaProcessAnomaly()
|
|
|
+};
|
|
|
+
|
|
|
+//获取左侧菜单栏
|
|
|
+const _StaGetList = async (row) => {
|
|
|
+ const StaGetListdata = await StaGetList({gdbh:row['Gd_gdbh'],yjno:row['行号']});
|
|
|
+ console.log(StaGetListdata.msg)
|
|
|
+ if(StaGetListdata.msg === '成功'){
|
|
|
+ treeDatalcd.splice(0, treeDatalcd.length, ...StaGetListdata.data);
|
|
|
+ popdialog.value = true
|
|
|
+ }else{
|
|
|
+ console.log(StaGetListdata.msg)
|
|
|
+ ElMessage({type: 'warning',message: StaGetListdata.msg})
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+//工艺及生产班组
|
|
|
+const lcdtableData = reactive([])
|
|
|
+const _StaProcessList = async (node) => {
|
|
|
+ const StaProcessListdata = await StaProcessList({gdbh:_Gd_gdbhlcd.value,yjno:_Gd_yjnolcd.value,num:node});
|
|
|
+ lcdtableData.splice(0,lcdtableData.length,...StaProcessListdata.data);
|
|
|
+};
|
|
|
+
|
|
|
+//制程异常记录
|
|
|
+const zcycjltableData = reactive([])
|
|
|
+const _StaProcessAnomaly = async () => {
|
|
|
+ const StaProcessAnomalydata = await StaProcessAnomaly({gdbh:_Gd_gdbhlcd.value,yjno:_Gd_yjnolcd.value});
|
|
|
+ zcycjltableData.splice(0,zcycjltableData.length,...StaProcessAnomalydata.data);
|
|
|
+};
|
|
|
+
|
|
|
+//退出按钮
|
|
|
+const ontuicclick = async () => {
|
|
|
+ popdialog.value = false
|
|
|
+};
|
|
|
+
|
|
|
+//退出按钮
|
|
|
+const ontuicclicks = async () => {
|
|
|
+ scpconlist.value = false
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
// 搜索
|
|
|
function handleSearch() {
|
|
|
params.sys_id = ''
|