From d0380e7c8fe8755a9c51afa0b02af22557a7ea81 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期一, 21 四月 2025 17:26:41 +0800
Subject: [PATCH] 工序异常分析 && 工单同步日志页面
---
src/views/mainPlan/abnormalProcessAnalysis/index.vue | 6
src/views/mainPlan/workOrderJobLog/index.vue | 317 ++++++++++++++++++++++++++++++++++++++++++++++++++++
src/api/mainPlan/workOrderJobLog.js | 28 ++++
src/views/partPlan/index.vue | 3
4 files changed, 349 insertions(+), 5 deletions(-)
diff --git a/src/api/mainPlan/workOrderJobLog.js b/src/api/mainPlan/workOrderJobLog.js
new file mode 100644
index 0000000..d3259e2
--- /dev/null
+++ b/src/api/mainPlan/workOrderJobLog.js
@@ -0,0 +1,28 @@
+import request from '@/utils/request'
+
+// 鏌ヨ宸ュ崟鍚屾鏃ュ織鍒楄〃
+export function list(query) {
+ return request({
+ url: '/schedule/apsWorkOrderJobLog/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 鏌ヨ宸ュ崟鍚屾鏃ュ織璇︾粏
+export function get(id) {
+ return request({
+ url: '/schedule/apsWorkOrderJobLog/' + id,
+ method: 'get'
+ })
+}
+
+// 鏍规嵁鏃ュ織閲嶈瘯
+export function sync(data) {
+ return request({
+ url: '/schedule/apsWorkOrderJobLog/sync',
+ method: 'post',
+ data: data
+ })
+}
+
diff --git a/src/views/mainPlan/abnormalProcessAnalysis/index.vue b/src/views/mainPlan/abnormalProcessAnalysis/index.vue
index 2840c78..ce07e44 100644
--- a/src/views/mainPlan/abnormalProcessAnalysis/index.vue
+++ b/src/views/mainPlan/abnormalProcessAnalysis/index.vue
@@ -58,9 +58,9 @@
const { queryParams, form, rules } = toRefs(data);
const columns = ref([
{ type: 'seq', title: '搴忓彿', width: 60 },
- { title: '宸ュ簭鍚嶇О', field: 'processName', width: 200},
- { title: '寮傚父鏉ユ簮', field: 'source', width: 200},
- { title: '寮傚父鎻忚堪', field: 'summary', width: 200},
+ { title: '宸ュ簭鍚嶇О', field: 'processName'},
+ { title: '寮傚父鏉ユ簮', field: 'source'},
+ { title: '寮傚父鎻忚堪', field: 'summary'},
{ title: '鍒涘缓鏃堕棿', field: 'createTime', width: 200},
])
diff --git a/src/views/mainPlan/workOrderJobLog/index.vue b/src/views/mainPlan/workOrderJobLog/index.vue
new file mode 100644
index 0000000..4b79b1f
--- /dev/null
+++ b/src/views/mainPlan/workOrderJobLog/index.vue
@@ -0,0 +1,317 @@
+<template>
+ <div class="app-container">
+ <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
+ <el-row :gutter="20">
+
+ <el-col :span="6">
+ <el-form-item label="涓氬姟绫诲瀷" style="width: 100%;">
+ <el-select v-model="queryParams.bizType" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in bizType"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+
+ <el-col :span="6">
+ <el-form-item label="璇锋眰鏃堕棿" style="width: 100%;">
+ <el-date-picker
+ v-model="createTimes"
+ value-format="YYYY-MM-DD"
+ type="daterange"
+ range-separator="-"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ ></el-date-picker>
+ </el-form-item>
+ </el-col>
+
+<!-- <el-col :span="6">
+ <el-form-item label="璇锋眰鍙傛暟" prop="requestData">
+ <el-input
+ v-model="queryParams.requestData"
+ placeholder="璇疯緭鍏ヨ姹傚弬鏁�"
+ clearable
+ @keyup.enter="handleQuery"
+ />
+ </el-form-item>
+ </el-col>-->
+
+ <el-col :span="6">
+ <el-form-item label="璇锋眰缁撴灉" prop="result">
+ <el-input
+ v-model="queryParams.result"
+ placeholder="璇疯緭鍏ヨ姹傜粨鏋�"
+ clearable
+ @keyup.enter="handleQuery"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="鍝嶅簲鏁版嵁" prop="requestData">
+ <el-input
+ v-model="queryParams.responseData"
+ placeholder="璇疯緭鍏ュ搷搴旀暟鎹�"
+ clearable
+ @keyup.enter="handleQuery"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col
+ :span="24"
+ style="text-align: right;">
+ <el-form-item>
+ <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
+ <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+
+ <el-row :gutter="10" class="mb8">
+
+
+ <el-col :span="1.5">
+ <el-button
+ type="warning"
+ plain
+ icon="Download"
+ @click="handleExport"
+ v-hasPermi="['apsWorkOrderJobLog:export']"
+ >瀵煎嚭</el-button>
+ </el-col>
+ <el-col :span="1.5">
+ <el-button
+ type="success"
+ plain
+ icon="Edit"
+ :disabled="single"
+ @click="handleUpdate"
+ v-hasPermi="['apsWorkOrderJobLog:edit']"
+ >鏌ョ湅</el-button>
+ </el-col>
+
+ <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+ </el-row>
+
+ <HxlhTable
+ style="width: 100%"
+ :columns="columns"
+ :data="LogList"
+ :loading="loading"
+ :height="height" >
+ <template #buttons="{row}">
+ <vxe-button mode="text" @click="handleUpdate(row)" v-hasPermi="['apsWorkOrderJobLog:edit']" >鏌ョ湅</vxe-button>
+ </template>
+ </HxlhTable>
+
+ <!-- 娣诲姞鎴栦慨鏀瑰伐鍗曞悓姝ユ棩蹇楀璇濇 -->
+ <el-dialog :title="title" v-model="open" width="500px" append-to-body>
+ <el-form ref="ApsWorkOrderJobLogRef" :model="form" :rules="rules" label-width="80px">
+ <el-form-item label="椤电爜" prop="pageNum">
+ <el-input v-model="form.pageNum" :disabled="true" />
+ </el-form-item>
+ <el-form-item label="璇锋眰鏁伴噺" prop="pageCount">
+ <el-input v-model="form.pageCount" :disabled="true" />
+ </el-form-item>
+ <el-form-item label="璇锋眰鍙傛暟" prop="requestData">
+ <el-input v-model="form.requestData" type="textarea" :rows="4" :disabled="true" />
+ </el-form-item>
+ <el-form-item label="淇濆瓨缁撴灉" prop="result">
+ <el-input v-model="form.result" type="textarea" :rows="4" :disabled="true" />
+ </el-form-item>
+ <el-form-item label="鍝嶅簲鏁版嵁" prop="responseData">
+ <el-input v-model="form.responseData" type="textarea" :rows="4" :disabled="true" />
+ </el-form-item>
+ <el-form-item label="鎻愪氦鏃堕棿" prop="createTime">
+ <el-input v-model="form.createTime" :disabled="true" />
+ </el-form-item>
+ <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
+ <el-input v-model="form.updateTime" :disabled="true" />
+ </el-form-item>
+ <el-form-item label="鍚屾涓婚敭" v-show="false" prop="orderId">
+ <el-input v-model="form.orderId" placeholder="璇疯緭鍏ュ悓姝ヤ富閿�" />
+ </el-form-item>
+
+ </el-form>
+ <template #footer>
+ <div class="dialog-footer">
+ <el-button type="primary" @click="submitForm">閲嶆柊鍚屾</el-button>
+ <el-button @click="cancel">鍙� 娑�</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ </div>
+</template>
+
+<script setup name="ApsWorkOrderJobLog">
+import { list, get, sync } from "@/api/mainPlan/workOrderJobLog";
+import {ref} from "vue";
+import HxlhTable from "@/components/HxlhTable/index.vue";
+
+const { proxy } = getCurrentInstance();
+const height = ref(document.documentElement.clientHeight - 270 + "px;")
+
+const LogList = ref([]);
+const open = ref(false);
+const loading = ref(true);
+const showSearch = ref(true);
+const ids = ref([]);
+const single = ref(true);
+const multiple = ref(true);
+const total = ref(0);
+const title = ref("");
+const createTimes=ref([]);
+
+const data = reactive({
+ form: {},
+ queryParams: {
+ pageCount: null,
+ responseData: null,
+ result: null,
+ orderId: null,
+ requestData: null
+ },
+ rules: {
+ }
+});
+const columns = ref([
+ { type: 'checkbox', width: 60, align:"center"},
+
+ { title: '涓氬姟绫诲瀷', field:'bizType', width: 150 },
+ { title: '椤电爜', field:'pageNum', width: 80 },
+ { title: '璇锋眰鏁伴噺', field:'pageCount', width: 80 },
+ { title: '璇锋眰鍙傛暟', field:'requestData', width: 300 },
+ { title: '璇锋眰鏃堕棿', field:'createTime', width: 150 },
+ { title: '鏇存柊鏃堕棿', field:'updateTime', width: 150 },
+ { title: '璇锋眰缁撴灉', field:'result', width: 200 },
+ { title: '鍝嶅簲鏁版嵁', field:'responseData', width: 200 },
+ { title: '鎿嶄綔', width: 100, fixed:"right", slots: { default: 'buttons' } }
+])
+const bizType = ref([
+ {value:'work_order',label:' work_order'},
+ {value:'work_order_process',label:' work_order_process'}
+
+]);
+
+const { queryParams, form, rules } = toRefs(data);
+
+/** 鏌ヨ宸ュ崟鍚屾鏃ュ織鍒楄〃 */
+function getList() {
+ loading.value = true;
+ queryParams.value.params = {};
+ if (null != createTimes && '' !== createTimes) {
+ queryParams.value.params["beginCreateTime"] = createTimes.value[0];
+ queryParams.value.params["endCreateTime"] = createTimes.value[1];
+ }
+ list(queryParams.value).then(response => {
+ LogList.value = response.rows;
+ total.value = response.total;
+ loading.value = false;
+ });
+}
+
+// 鍙栨秷鎸夐挳
+function cancel() {
+ open.value = false;
+ reset();
+}
+
+// 琛ㄥ崟閲嶇疆
+function reset() {
+ form.value = {
+ id: null,
+ pageNum: null,
+ pageCount: null,
+ responseData: null,
+ result: null,
+ orderId: null,
+ requestData: null
+ };
+ proxy.resetForm("ApsWorkOrderJobLogRef");
+}
+
+/** 鎼滅储鎸夐挳鎿嶄綔 */
+function handleQuery() {
+
+
+ getList();
+}
+
+/** 閲嶇疆鎸夐挳鎿嶄綔 */
+function resetQuery() {
+ proxy.resetForm("queryRef");
+ handleQuery();
+}
+
+// 澶氶�夋閫変腑鏁版嵁
+function handleSelectionChange(selection) {
+ ids.value = selection.map(item => item.id);
+ single.value = selection.length != 1;
+ multiple.value = !selection.length;
+}
+
+/** 鏂板鎸夐挳鎿嶄綔 */
+function handleAdd() {
+ reset();
+ open.value = true;
+ title.value = "娣诲姞宸ュ崟鍚屾鏃ュ織";
+}
+
+/** 淇敼鎸夐挳鎿嶄綔 */
+function handleUpdate(row) {
+ reset();
+ const _id = row.id || ids.value
+
+ get(_id).then(response => {
+ form.value = response.data;
+ open.value = true;
+ title.value = "鏌ョ湅宸ュ崟鍚屾鏃ュ織";
+ });
+
+
+}
+
+/** 鎻愪氦鎸夐挳 */
+function submitForm() {
+ proxy.$refs["ApsWorkOrderJobLogRef"].validate(valid => {
+ if (valid) {
+ if (form.value.id != null) {
+ debugger;
+ if(form.value.bizType==="work_order"){
+ sync(form.value).then(response => {
+ proxy.$modal.msgSuccess("鍚屾鎴愬姛");
+ open.value = false;
+ getList();
+ });
+ }else {
+ proxy.$modal.msgSuccess("鏆傛湭瀹炵幇");
+ }
+ }
+ }
+ });
+}
+/** 瀵煎嚭鎸夐挳鎿嶄綔 */
+function handleExport() {
+ proxy.download('log/ApsWorkOrderJobLog/export', {
+ ...queryParams.value
+ }, `ApsWorkOrderJobLog_${new Date().getTime()}.xlsx`)
+}
+
+/** 鍒犻櫎鎸夐挳鎿嶄綔 */
+function handleDelete(row) {
+ const _ids = row.id || ids.value;
+ proxy.$modal.confirm('鏄惁纭鍒犻櫎宸ュ崟鍚屾鏃ュ織缂栧彿涓�"' + _ids + '"鐨勬暟鎹」锛�').then(function() {
+ return delApsWorkOrderJobLog(_ids);
+ }).then(() => {
+ getList();
+ proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ }).catch(() => {});
+}
+
+
+getList();
+</script>
diff --git a/src/views/partPlan/index.vue b/src/views/partPlan/index.vue
index dcafbb0..45fc0a9 100644
--- a/src/views/partPlan/index.vue
+++ b/src/views/partPlan/index.vue
@@ -15,8 +15,7 @@
></el-date-picker>
</el-form-item>
</el-col>
- <el-col
- :span="6">
+ <el-col :span="6">
<el-form-item label="璁″垝瀹屽伐鏃�" style="width: 100%;">
<el-date-picker
v-model="daterangePlanEndDay"
--
Gitblit v1.9.3