Commit 41b4f571 authored by Cai Wei's avatar Cai Wei

Merge branch 'dev' of https://app.bmetech.com/liuzhaohui/dctomproject into dev

parents 5082b90e 6e679ff5
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
range-separator="~" range-separator="~"
start-placeholder="开始时间" start-placeholder="开始时间"
end-placeholder="结束时间" end-placeholder="结束时间"
popper-class="date-picker-popper"
:teleported="false" :teleported="false"
/> />
</el-form-item> </el-form-item>
...@@ -128,6 +129,7 @@ ...@@ -128,6 +129,7 @@
v-model="equSubmitInfo.startTime" v-model="equSubmitInfo.startTime"
type="datetime" type="datetime"
placeholder="选择开始时间" placeholder="选择开始时间"
popper-class="date-picker-popper"
/> />
</el-form-item> </el-form-item>
<el-form-item label="结束时间" prop="endTime"> <el-form-item label="结束时间" prop="endTime">
...@@ -135,6 +137,7 @@ ...@@ -135,6 +137,7 @@
v-model="equSubmitInfo.endTime" v-model="equSubmitInfo.endTime"
type="datetime" type="datetime"
placeholder="选择结束时间" placeholder="选择结束时间"
popper-class="date-picker-popper"
/> />
</el-form-item> </el-form-item>
</el-form> </el-form>
......
...@@ -2,18 +2,19 @@ ...@@ -2,18 +2,19 @@
<div class="my-agency all-select-btn"> <div class="my-agency all-select-btn">
<el-form :inline="true" :model="formInline" class="demo-form-inline"> <el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="事件名称:"> <el-form-item label="事件名称:">
<el-input v-model="formInline.eventName"> <el-input v-model="formInline.eventName"> </el-input>
</el-input>
</el-form-item> </el-form-item>
<el-form-item label="发生位置:"> <el-form-item label="发生位置:">
<el-input v-model="formInline.keyword" placeholder="请输入"></el-input> <el-input v-model="formInline.keyword" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="所属工序:"> <el-form-item label="所属工序:">
<el-select v-model="formInline.productionLineId" <el-select
v-model="formInline.productionLineId"
placeholder="请选择" placeholder="请选择"
style="width: 180px" style="width: 180px"
> >
<el-option v-for="(item, index) in basicConfiguration.productLineList" <el-option
v-for="(item, index) in basicConfiguration.productLineList"
:key="item.productionLineId" :key="item.productionLineId"
:label="item.productionLineName" :label="item.productionLineName"
:value="item.productionLineId" :value="item.productionLineId"
...@@ -21,7 +22,8 @@ ...@@ -21,7 +22,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="设备类型"> <el-form-item label="设备类型">
<el-select v-model="formInline.deviceType" <el-select
v-model="formInline.deviceType"
style="width: 180px" style="width: 180px"
placeholder="请选择" placeholder="请选择"
> >
...@@ -36,18 +38,27 @@ ...@@ -36,18 +38,27 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="发生时间"> <el-form-item label="发生时间">
<el-date-picker type="datetimerange" <el-date-picker
type="datetimerange"
v-model="formInline.createTime" v-model="formInline.createTime"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
popper-class="date-picker-popper"
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button class="default-btn reset-btn-balck-theme" @click="onReset">重置</el-button> <el-button class="default-btn reset-btn-balck-theme" @click="onReset"
<el-button type="default" class="default-btn search-btn-balck-theme" @click="onSearch">查询</el-button> >重置</el-button
>
<el-button
type="default"
class="default-btn search-btn-balck-theme"
@click="onSearch"
>查询</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="table-box"> <div class="table-box">
...@@ -103,10 +114,11 @@ ...@@ -103,10 +114,11 @@
<div class="label-title">闭环控制分派</div> <div class="label-title">闭环控制分派</div>
<el-form-item label="已分派人:"> <el-form-item label="已分派人:">
<el-tag <el-tag
v-for="(ele,eIndex) in personTag" v-for="(ele, eIndex) in personTag"
:key="ele.name" :key="ele.name"
:type="ele.type"> :type="ele.type"
{{ele.name}} >
{{ ele.name }}
</el-tag> </el-tag>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -125,7 +137,9 @@ ...@@ -125,7 +137,9 @@
</div> </div>
<div class="content-item"> <div class="content-item">
<span class="name">闭环控制状态:</span> <span class="name">闭环控制状态:</span>
<span class="value work-status">{{ workSheetDetail?.desc }}</span> <span class="value work-status">{{
workSheetDetail?.desc
}}</span>
</div> </div>
</div> </div>
</el-col> </el-col>
...@@ -166,8 +180,11 @@ ...@@ -166,8 +180,11 @@
workSheetDetail?.warnType != 20 && workSheetDetail?.warnType != 20 &&
workSheetDetail?.warnType != 21 workSheetDetail?.warnType != 21
" "
>告警值:</span> >告警值:</span
<span class="name" v-else-if="workSheetDetail?.warnType == 4">离线时长:</span> >
<span class="name" v-else-if="workSheetDetail?.warnType == 4"
>离线时长:</span
>
<span <span
class="value alarm-value" class="value alarm-value"
v-if=" v-if="
...@@ -175,16 +192,21 @@ ...@@ -175,16 +192,21 @@
workSheetDetail.warnType != 4 && workSheetDetail.warnType != 4 &&
workSheetDetail.warnType != 18 workSheetDetail.warnType != 18
" "
>{{ workSheetDetail?.value }}{{ workSheetDetail?.unit }}</span >{{ workSheetDetail?.value
}}{{ workSheetDetail?.unit }}</span
> >
<span <span
class="value alarm-value" class="value alarm-value"
v-else-if="workSheetDetail?.warnType == 4" v-else-if="workSheetDetail?.warnType == 4"
>{{ warnValueFilter(workSheetDetail?.offlineTime) }}</span> >{{ warnValueFilter(workSheetDetail?.offlineTime) }}</span
>
</div> </div>
<div class="content-item" v-if="workSheetDetail?.convertValue"> <div class="content-item" v-if="workSheetDetail?.convertValue">
<span class="name">折算值:</span> <span class="name">折算值:</span>
<span class="value alarm-value">{{ workSheetDetail?.convertValue }}{{ workSheetDetail?.unit }}</span> <span class="value alarm-value"
>{{ workSheetDetail?.convertValue
}}{{ workSheetDetail?.unit }}</span
>
</div> </div>
<div class="content-item"> <div class="content-item">
<span class="name">告警时间:</span> <span class="name">告警时间:</span>
...@@ -423,7 +445,10 @@ ...@@ -423,7 +445,10 @@
</div> </div>
<div <div
class="input-style-text" class="input-style-text"
v-if=" !workSheetDetail?.forwards[0]?.forward && imgUrlList.length == 0" v-if="
!workSheetDetail?.forwards[0]?.forward &&
imgUrlList.length == 0
"
> >
暂无描述 暂无描述
</div> </div>
...@@ -566,7 +591,11 @@ ...@@ -566,7 +591,11 @@
<el-form> <el-form>
<el-form-item label="分派人:"> <el-form-item label="分派人:">
<div class="inline-box"> <div class="inline-box">
<el-select v-model="handlerPeopleId" filterable placeholder="请选择分派人"> <el-select
v-model="handlerPeopleId"
filterable
placeholder="请选择分派人"
>
<el-option <el-option
v-for="(item, i) in handlerPeople" v-for="(item, i) in handlerPeople"
:key="i" :key="i"
...@@ -574,17 +603,23 @@ ...@@ -574,17 +603,23 @@
:value="item.id" :value="item.id"
></el-option> ></el-option>
</el-select> </el-select>
<el-button type="default" class="addBtn search-btn-balck-theme" @click="addPerson">新增</el-button> <el-button
type="default"
class="addBtn search-btn-balck-theme"
@click="addPerson"
>新增</el-button
>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="已分派人:"> <el-form-item label="已分派人:">
<el-tag <el-tag
v-for="(ele,eIndex) in personTag" v-for="(ele, eIndex) in personTag"
:key="ele.name" :key="ele.name"
closable closable
@close="delPerson(eIndex)" @close="delPerson(eIndex)"
:type="ele.type"> :type="ele.type"
{{ele.name}} >
{{ ele.name }}
</el-tag> </el-tag>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -599,9 +634,14 @@ ...@@ -599,9 +634,14 @@
> >
<el-form> <el-form>
<el-form-item label="第几行:"> <el-form-item label="第几行:">
<el-select v-model="bagRow" placeholder="请选择第几行" @change="getCol"> <el-select
v-model="bagRow"
placeholder="请选择第几行"
@change="getCol"
>
<el-option <el-option
v-for="item in rowList" :key="item" v-for="item in rowList"
:key="item"
:label="item" :label="item"
:value="item" :value="item"
> >
...@@ -611,7 +651,8 @@ ...@@ -611,7 +651,8 @@
<el-form-item label="第几列:"> <el-form-item label="第几列:">
<el-select v-model="bagCol" placeholder="请选择第几列"> <el-select v-model="bagCol" placeholder="请选择第几列">
<el-option <el-option
v-for="item in colList" :key="item" v-for="item in colList"
:key="item"
:label="item" :label="item"
:value="item" :value="item"
> >
...@@ -624,14 +665,20 @@ ...@@ -624,14 +665,20 @@
</template> </template>
<script setup> <script setup>
import { ref, reactive, onMounted, onBeforeUnmount,computed } from 'vue' import { ref, reactive, onMounted, onBeforeUnmount, computed } from "vue";
import CommonTable from "@/components/commonTable/index.vue"; import CommonTable from "@/components/commonTable/index.vue";
import commonDialog from "./components/dialog.vue"; import commonDialog from "./components/dialog.vue";
import { getData, getDataFun, postData, postDataJson, postDataJSON } from '@/request/method.js'; import {
import moment from 'moment'; getData,
import { getToken } from '@/utils/auth.js'; getDataFun,
import { ElMessage } from 'element-plus' postData,
import { storeToRefs } from 'pinia' postDataJson,
postDataJSON,
} from "@/request/method.js";
import moment from "moment";
import { getToken } from "@/utils/auth.js";
import { ElMessage } from "element-plus";
import { storeToRefs } from "pinia";
import { useUsersStore } from "@/pinia/user.js"; import { useUsersStore } from "@/pinia/user.js";
import { useRoute, useRouter } from "vue-router"; import { useRoute, useRouter } from "vue-router";
const router = useRouter(); const router = useRouter();
...@@ -640,11 +687,11 @@ const route = useRoute(); ...@@ -640,11 +687,11 @@ const route = useRoute();
const { functionAuthority } = storeToRefs(useUsersStore()); const { functionAuthority } = storeToRefs(useUsersStore());
const total = ref(0); const total = ref(0);
const formInline = ref({ const formInline = ref({
eventName: '', eventName: "",
keyword: '', keyword: "",
warnType: '', warnType: "",
productionLineId: '', productionLineId: "",
deviceType: '', deviceType: "",
createTime: route.query.startTime createTime: route.query.startTime
? [ ? [
moment(new Date(route.query.startTime).getTime()).format( moment(new Date(route.query.startTime).getTime()).format(
...@@ -654,16 +701,16 @@ const formInline = ref({ ...@@ -654,16 +701,16 @@ const formInline = ref({
"YYYY-MM-DD HH:mm:ss" "YYYY-MM-DD HH:mm:ss"
), ),
] ]
: ['',''] : ["", ""],
}); });
const workTicketNo = ref(''); const workTicketNo = ref("");
const handlerPeopleId = ref(''); const handlerPeopleId = ref("");
const handlerPeople = ref([]); const handlerPeople = ref([]);
const getHandlerPeople = async () => { const getHandlerPeople = async () => {
const url = '/transfer-work-ticket-pc/getTicketHandler?pageSize=999&pageNo=1'; const url = "/transfer-work-ticket-pc/getTicketHandler?pageSize=999&pageNo=1";
try { try {
let result = await getData(url); let result = await getData(url);
if (result && result.code === 1) { if (result && result.code === 1) {
...@@ -672,180 +719,180 @@ const getHandlerPeople = async () => { ...@@ -672,180 +719,180 @@ const getHandlerPeople = async () => {
} }
} catch (e) { } catch (e) {
ElMessage({ ElMessage({
message: '接口报错', message: "接口报错",
type: 'error' type: "error",
}) });
} }
} };
const assignDialog = ref({ const assignDialog = ref({
title: '闭环控制分派', title: "闭环控制分派",
show: false, show: false,
width: '30%', width: "30%",
btnGroup: [ btnGroup: [
{ {
attrKey: 'save', attrKey: "save",
label: '保存' label: "保存",
} },
] ],
}); });
const bagDialog = ref({ const bagDialog = ref({
title: '更换布袋', title: "更换布袋",
show: false, show: false,
width: '30%', width: "30%",
btnGroup: [ btnGroup: [
{ {
attrKey: 'save', attrKey: "save",
label: '保存' label: "保存",
} },
] ],
}); });
const bagRow = ref(''); const bagRow = ref("");
const bagCol = ref(''); const bagCol = ref("");
const rowList = ref([]); const rowList = ref([]);
const colList = ref([]); const colList = ref([]);
const saveBag = () => {
const saveBag = ()=>{ if (bagRow.value === "") {
if (bagRow.value === '') {
ElMessage({ ElMessage({
type: 'warning', type: "warning",
message: '请选择第几行' message: "请选择第几行",
}); });
return; return;
} }
if (bagCol.value === '') { if (bagCol.value === "") {
ElMessage({ ElMessage({
type: 'warning', type: "warning",
message: '请选择第几列' message: "请选择第几列",
}); });
return; return;
} }
const params = { const params = {
workTicketNo: workTicketNo.value, workTicketNo: workTicketNo.value,
row: bagRow.value, row: bagRow.value,
column: bagCol.value column: bagCol.value,
}; };
postDataJSON('/transaction/doc/changeBag',params).then(res => { postDataJSON("/transaction/doc/changeBag", params).then((res) => {
if (res.code === 1) { if (res.code === 1) {
ElMessage({ ElMessage({
type: 'success', type: "success",
message: '更换布袋成功' message: "更换布袋成功",
}); });
bagDialog.value.show = false; bagDialog.value.show = false;
searchData(); searchData();
} }
}); });
} };
const rowLineMap = ref(null); const rowLineMap = ref(null);
const getBagRowLine = (no) => { const getBagRowLine = (no) => {
const url = '/bag/cycle/getCompartEnumList'; const url = "/bag/cycle/getCompartEnumList";
const params = { const params = {
deviceNo: no deviceNo: no,
} };
getDataFun(url,params).then(res => { getDataFun(url, params).then((res) => {
if (res.code === 1) { if (res.code === 1) {
rowLineMap.value = res.data; rowLineMap.value = res.data;
res.data.forEach(item => { res.data.forEach((item) => {
rowList.value.push(item.row); rowList.value.push(item.row);
}); });
} }
}) });
} };
const getCol = ()=>{ const getCol = () => {
rowLineMap.value.forEach(item => { rowLineMap.value.forEach((item) => {
if (item.row === bagRow.value) { if (item.row === bagRow.value) {
colList.value = item.columns; colList.value = item.columns;
} }
}); });
} };
const personTag = ref([]); const personTag = ref([]);
const addPerson = ()=>{ const addPerson = () => {
const target = handlerPeople.value.find(item => item.id === handlerPeopleId.value); const target = handlerPeople.value.find(
(item) => item.id === handlerPeopleId.value
);
personTag.value.push({ personTag.value.push({
userId: target.id, userId: target.id,
userName: target.name, userName: target.name,
name: target.name, name: target.name,
type: 'info' type: "info",
}); });
} };
const delPerson = (index)=>{ const delPerson = (index) => {
personTag.value.splice(index,1); personTag.value.splice(index, 1);
} };
const getIndex = (index) => { const getIndex = (index) => {
return (currentPage.value - 1) * pageSize.value + index + 1; return (currentPage.value - 1) * pageSize.value + index + 1;
}; };
const saveAssign = ()=> { const saveAssign = () => {
if (personTag.value.length === 0) { if (personTag.value.length === 0) {
ElMessage({ ElMessage({
showClose: true, showClose: true,
type: 'warning', type: "warning",
message: '请选择分派人' message: "请选择分派人",
}) });
} }
const tempArr = []; const tempArr = [];
personTag.value.forEach(item => { personTag.value.forEach((item) => {
tempArr.push({ tempArr.push({
userId: item.userId, userId: item.userId,
userName: item.userName userName: item.userName,
}) });
}); });
const params = { const params = {
workTicketNo: workTicketNo.value, workTicketNo: workTicketNo.value,
receiveUser: '', receiveUser: "",
receiveUserName: '', receiveUserName: "",
handleUsers: tempArr handleUsers: tempArr,
} };
const url = '/transaction/doc/transferTransaction'; const url = "/transaction/doc/transferTransaction";
dispatchHandle(url, params); dispatchHandle(url, params);
} };
const dispatchHandle = async (url,param) => { const dispatchHandle = async (url, param) => {
try { try {
let result = await postDataJSON(url,param); let result = await postDataJSON(url, param);
if (result && result.code === 1) { if (result && result.code === 1) {
assignDialog.value.show = false; assignDialog.value.show = false;
ElMessage({ ElMessage({
message: '处理成功', message: "处理成功",
type: 'success' type: "success",
}); });
searchData(); searchData();
} }
} catch (e) { } catch (e) {}
} };
}
const basicConfiguration = reactive({ const basicConfiguration = reactive({
ticketEventName: [{ name: '全部', id: '' }], ticketEventName: [{ name: "全部", id: "" }],
eventTypeList: [], eventTypeList: [],
productLineList: [{productionLineName: '全部', productionLineId: ''}], productLineList: [{ productionLineName: "全部", productionLineId: "" }],
deviceList: [] deviceList: [],
}); });
const workSheetDetail = ref(null); const workSheetDetail = ref(null);
const getColor = computed(()=>{ const getColor = computed(() => {
return (level) => { return (level) => {
if (level == 2) { if (level == 2) {
return 'red' return "red";
} else if (level == 1) { } else if (level == 1) {
return 'yellow' return "yellow";
} else { } else {
return 'purple' return "purple";
}
} }
};
}); });
const warnValueFilter = computed(()=> { const warnValueFilter = computed(() => {
return (offlineTime)=> { return (offlineTime) => {
if (offlineTime == null || offlineTime <= 0) { if (offlineTime == null || offlineTime <= 0) {
return "--"; return "--";
} }
...@@ -874,71 +921,69 @@ const warnValueFilter = computed(()=> { ...@@ -874,71 +921,69 @@ const warnValueFilter = computed(()=> {
} }
return s; return s;
} }
} };
}); });
const onSearch = ()=> { const onSearch = () => {
searchData(); searchData();
} };
const onReset =()=> { const onReset = () => {
currentPage.value = 1; currentPage.value = 1;
pageSize.value = 20; pageSize.value = 20;
formInline.value.eventName = ''; formInline.value.eventName = "";
formInline.value.keyword = ''; formInline.value.keyword = "";
formInline.value.productionLineId = ''; formInline.value.productionLineId = "";
formInline.value.deviceType = ''; formInline.value.deviceType = "";
formInline.value.createTime = [ formInline.value.createTime = ["", ""];
'',''
]
searchData(); searchData();
} };
const doneDialog = ref({ const doneDialog = ref({
title: '闭环控制分派', title: "闭环控制分派",
show: false, show: false,
width: '45%', width: "45%",
btnGroup: [ btnGroup: [
{ {
attrKey: 'save', attrKey: "save",
label: '处理' label: "处理",
} },
] ],
}); });
const viewData = { const viewData = {
D: "在线监控(监测)仪器仪表故障", D: "在线监控(监测)仪器仪表故障",
B: "在线监控(监测)仪器仪表与数采通讯异常", B: "在线监控(监测)仪器仪表与数采通讯异常",
VGD: "在线监控(监测)仪器仪表与数采通讯异常", VGD: "在线监控(监测)仪器仪表与数采通讯异常",
} };
const handleDone = async (data)=> { const handleDone = async (data) => {
doneDialog.value.title = data.eventName; doneDialog.value.title = data.eventName;
workTicketNo.value = data.workTicketNo; workTicketNo.value = data.workTicketNo;
let res = await getDetail(data.workTicketNo); let res = await getDetail(data.workTicketNo);
doneDialog.value.show = true; doneDialog.value.show = true;
personTag.value = []; personTag.value = [];
if (res.handleUsers && res.handleUsers.length > 0) { if (res.handleUsers && res.handleUsers.length > 0) {
res.handleUsers.forEach(item => { res.handleUsers.forEach((item) => {
personTag.value.push({ personTag.value.push({
type: 'info', type: "info",
name: item.userName, name: item.userName,
userId: item.userId, userId: item.userId,
userName: item.userName userName: item.userName,
}); });
}); });
} }
disposeWorkSheetDetail(res); disposeWorkSheetDetail(res);
} };
const saveDeal = () => { const saveDeal = () => {
const { workTicketNo, handleValue, imgUrl } = workSheetDetail.value; const { workTicketNo, handleValue, imgUrl } = workSheetDetail.value;
const reason = dialogReason.value; const reason = dialogReason.value;
const measure = dialogMeasure.value; const measure = dialogMeasure.value;
const param = { workTicketNo, handleValue, reason, measure, imgUrl }; const param = { workTicketNo, handleValue, reason, measure, imgUrl };
const url = '/transaction/doc/finishTransaction'; const url = "/transaction/doc/finishTransaction";
disposeHandle(url, param); disposeHandle(url, param);
} };
const disposeHandle = async (url, param) => { const disposeHandle = async (url, param) => {
try { try {
...@@ -947,141 +992,147 @@ const disposeHandle = async (url, param) => { ...@@ -947,141 +992,147 @@ const disposeHandle = async (url, param) => {
doneDialog.value.show = false; doneDialog.value.show = false;
searchData(); searchData();
ElMessage({ ElMessage({
message: '处理成功', message: "处理成功",
type: 'success' type: "success",
}); });
} }
} catch (e) { } catch (e) {
ElMessage({ ElMessage({
message: '处理失败', message: "处理失败",
type: 'error' type: "error",
}); });
} }
}; };
// 分派 // 分派
const handleDispatch = async (data)=> { const handleDispatch = async (data) => {
getHandlerPeople(); getHandlerPeople();
workTicketNo.value = data.workTicketNo; workTicketNo.value = data.workTicketNo;
let res = await getDetail(data.workTicketNo); let res = await getDetail(data.workTicketNo);
assignDialog.value.show = true; assignDialog.value.show = true;
personTag.value = []; personTag.value = [];
if (res.handleUsers && res.handleUsers.length > 0) { if (res.handleUsers && res.handleUsers.length > 0) {
res.handleUsers.forEach(item => { res.handleUsers.forEach((item) => {
personTag.value.push({ personTag.value.push({
type: 'info', type: "info",
name: item.userName, name: item.userName,
userId: item.userId, userId: item.userId,
userName: item.userName userName: item.userName,
}); });
}); });
} }
} };
const getDetail = (workTicketNo) => { const getDetail = (workTicketNo) => {
return new Promise((resolve,reject) => { return new Promise((resolve, reject) => {
const url = '/transaction/doc/detail'; const url = "/transaction/doc/detail";
const params = { const params = {
workTicketNo workTicketNo,
} };
getDataFun(url,params).then(res => { getDataFun(url, params)
.then((res) => {
workSheetDetail.value = res.data; workSheetDetail.value = res.data;
resolve(res.data); resolve(res.data);
}).catch(err => { })
.catch((err) => {
reject(); reject();
}); });
}); });
} };
const changeBag = (data)=>{ const changeBag = (data) => {
workTicketNo.value = data.workTicketNo; workTicketNo.value = data.workTicketNo;
getBagRowLine(data.deviceNo); getBagRowLine(data.deviceNo);
bagDialog.value.show = true; bagDialog.value.show = true;
} };
const tableData = ref([]); const tableData = ref([]);
const tableColumns = ref([ const tableColumns = ref([
{ {
prop: 'index', prop: "index",
label: '序号', label: "序号",
width: '6%' width: "6%",
}, },
{ {
prop: 'workTicketNo', prop: "workTicketNo",
label: '编号', label: "编号",
width: '10%' width: "10%",
}, },
{ {
prop: 'eventName', prop: "eventName",
label: '事件名称', label: "事件名称",
width: '10%' width: "10%",
}, },
{ {
prop: 'deviceName', prop: "deviceName",
label: '发生位置', label: "发生位置",
width: '10%' width: "10%",
}, },
{ {
prop: 'deviceNo', prop: "deviceNo",
label: '设备编码', label: "设备编码",
width: '10%' width: "10%",
}, },
{ {
prop: 'typeName', prop: "typeName",
label: '设备类型', label: "设备类型",
width: '10%' width: "10%",
}, },
{ {
prop: 'signalName', prop: "signalName",
label: '信号名称', label: "信号名称",
width: '10%' width: "10%",
}, },
{ {
prop: 'productionLine', label: '所属工序',width: '10%' }, prop: "productionLine",
{ prop: 'warnTypeName', label: '类型',width: '10%' }, label: "所属工序",
{ prop: 'createTime', label: '发生时间',width: '10%' }, width: "10%",
{ prop: 'desc', label: '闭环状态',width: '10%' }, },
{ prop: 'handleUser', label: '处理人',width: '10%' }, { prop: "warnTypeName", label: "类型", width: "10%" },
{ prop: 'level', label: '级别',width: '5%' }, { prop: "createTime", label: "发生时间", width: "10%" },
{ prop: "desc", label: "闭环状态", width: "10%" },
{ prop: "handleUser", label: "处理人", width: "10%" },
{ prop: "level", label: "级别", width: "5%" },
{ {
prop: "operation", prop: "operation",
label: "操作", label: "操作",
width: '15%' width: "15%",
}, },
]); ]);
const customerId = getToken('customerId'); const customerId = getToken("customerId");
const getWarnAndTicketConfigMap = ()=> { const getWarnAndTicketConfigMap = () => {
const url = '/system/getWarnAndTicketConfigMap'; const url = "/system/getWarnAndTicketConfigMap";
const params = { const params = {
customerId customerId,
} };
getDataFun(url,params).then(res => { getDataFun(url, params).then((res) => {
if (res && res.code === 1) { if (res && res.code === 1) {
const { ticketEventName } = res.data; const { ticketEventName } = res.data;
basicConfiguration.ticketEventName = basicConfiguration.ticketEventName.concat(ticketEventName); basicConfiguration.ticketEventName =
basicConfiguration.ticketEventName.concat(ticketEventName);
} }
}); });
}; };
const getDeviceType =() => { const getDeviceType = () => {
const url = '/alarm/getDeviceType'; const url = "/alarm/getDeviceType";
getData(url).then(res=>{ getData(url).then((res) => {
basicConfiguration.deviceList = res.data; basicConfiguration.deviceList = res.data;
}); });
} };
let realBtn = ''; let realBtn = "";
const searchData =()=> { const searchData = () => {
currentPage.value = 1; currentPage.value = 1;
pageSize.value = 20; pageSize.value = 20;
getTableData(); getTableData();
} };
const getTableData = ()=> { const getTableData = () => {
let keyWord = formInline.value.keyword; let keyWord = formInline.value.keyword;
const params = { const params = {
eventName: formInline.value.eventName, eventName: formInline.value.eventName,
...@@ -1095,77 +1146,76 @@ const getTableData = ()=> { ...@@ -1095,77 +1146,76 @@ const getTableData = ()=> {
handleState: 1, handleState: 1,
belongTo: 1, belongTo: 1,
isDcTom: 1, isDcTom: 1,
deviceType: formInline.value.deviceType deviceType: formInline.value.deviceType,
} };
tableData.value = []; tableData.value = [];
const url = '/transaction/doc/getListParamPage'; const url = "/transaction/doc/getListParamPage";
getDataFun(url,params).then(res => { getDataFun(url, params).then((res) => {
if (res && res.code === 1) { if (res && res.code === 1) {
const { list } = res.data; const { list } = res.data;
total.value = res.data.total; total.value = res.data.total;
disposeType(list); disposeType(list);
tableData.value = list; tableData.value = list;
tableData.value.forEach(item => { tableData.value.forEach((item) => {
item.handleUser = ''; item.handleUser = "";
item.handleUsers.forEach((ele,eIndex)=>{ item.handleUsers.forEach((ele, eIndex) => {
if (eIndex > 0) { if (eIndex > 0) {
item.handleUser += ',' + ele.userName; item.handleUser += "," + ele.userName;
} else { } else {
item.handleUser += ele.userName; item.handleUser += ele.userName;
} }
}); });
}); });
} }
}); });
} };
const disposeType = (list)=> { const disposeType = (list) => {
if (list.length) { if (list.length) {
list.forEach(l => { list.forEach((l) => {
if (!l.deviceNo) { if (!l.deviceNo) {
l.deviceNo = '--'; l.deviceNo = "--";
} }
switch (l.warnType) { switch (l.warnType) {
case 0: case 0:
l.warnType = '人工提交' l.warnType = "人工提交";
break break;
case 1: case 1:
l.warnType = '超标' l.warnType = "超标";
break break;
case 2: case 2:
l.warnType = '超低' l.warnType = "超低";
break break;
case 3: case 3:
l.warnType = '生产治理同步率' l.warnType = "生产治理同步率";
break break;
case 4: case 4:
l.warnType = '离线' l.warnType = "离线";
break break;
case 5: case 5:
l.warnType = '其他' l.warnType = "其他";
break break;
case 10: case 10:
l.warnType = '持续超标' l.warnType = "持续超标";
break break;
case 11: case 11:
l.warnType = '三倍超标' l.warnType = "三倍超标";
break break;
case 99: case 99:
l.warnType = '恒值' l.warnType = "恒值";
break break;
} }
}) });
} }
} };
const srcList = ref([]); const srcList = ref([]);
const dialogReason = ref(''); const dialogReason = ref("");
const dialogMeasure = ref(''); const dialogMeasure = ref("");
const imgUrlList = ref([]); const imgUrlList = ref([]);
const alarmImg = ref([]); const alarmImg = ref([]);
const disposeWorkSheetDetail = (obj)=> { const disposeWorkSheetDetail = (obj) => {
const { const {
reason, reason,
measure, measure,
...@@ -1178,8 +1228,8 @@ const disposeWorkSheetDetail = (obj)=> { ...@@ -1178,8 +1228,8 @@ const disposeWorkSheetDetail = (obj)=> {
if (forwards.length > 0) { if (forwards.length > 0) {
let receiveUserItem = forwards.slice(-1)[0]; let receiveUserItem = forwards.slice(-1)[0];
} }
dialogMeasure.value = ''; dialogMeasure.value = "";
dialogMeasure.value = ''; dialogMeasure.value = "";
srcList.value = []; srcList.value = [];
imgUrlList.value = []; imgUrlList.value = [];
...@@ -1197,7 +1247,7 @@ const disposeWorkSheetDetail = (obj)=> { ...@@ -1197,7 +1247,7 @@ const disposeWorkSheetDetail = (obj)=> {
if (imgUrl) { if (imgUrl) {
imgUrlList.value = imgUrl.split(";"); imgUrlList.value = imgUrl.split(";");
} }
} };
// 其他页面跳转当前页面,携带参数初始化 // 其他页面跳转当前页面,携带参数初始化
const getInitParams = () => { const getInitParams = () => {
if (route.query) { if (route.query) {
...@@ -1212,8 +1262,8 @@ const getInitParams = () => { ...@@ -1212,8 +1262,8 @@ const getInitParams = () => {
formInline.value.createTime[1] = suspendEndTime; formInline.value.createTime[1] = suspendEndTime;
} }
} }
} };
onMounted(()=>{ onMounted(() => {
getInitParams(); getInitParams();
getProDuctLine(); getProDuctLine();
getWarnAndTicketConfigMap(); getWarnAndTicketConfigMap();
...@@ -1224,13 +1274,12 @@ onMounted(()=>{ ...@@ -1224,13 +1274,12 @@ onMounted(()=>{
const formModel = ref({ const formModel = ref({
selectReason: [], selectReason: [],
}); });
const getProDuctLine = ()=>{ const getProDuctLine = () => {
const url = '/transaction/getProductionLine'; const url = "/transaction/getProductionLine";
getData(url).then(res => { getData(url).then((res) => {
basicConfiguration.productLineList.push(...res.data); basicConfiguration.productLineList.push(...res.data);
}); });
} };
const currentPage = ref(1); const currentPage = ref(1);
const pageSize = ref(20); const pageSize = ref(20);
...@@ -1246,7 +1295,7 @@ const handlePaginationChange = (pagination) => { ...@@ -1246,7 +1295,7 @@ const handlePaginationChange = (pagination) => {
width: 100%; width: 100%;
height: calc(100% - 14px); height: calc(100% - 14px);
box-sizing: border-box; box-sizing: border-box;
background: #181D21; background: #181d21;
padding: 20px; padding: 20px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
......
...@@ -2,18 +2,19 @@ ...@@ -2,18 +2,19 @@
<div class="my-agency all-select-btn"> <div class="my-agency all-select-btn">
<el-form :inline="true" :model="formInline" class="demo-form-inline"> <el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="事件名称:"> <el-form-item label="事件名称:">
<el-input v-model="formInline.eventName"> <el-input v-model="formInline.eventName"> </el-input>
</el-input>
</el-form-item> </el-form-item>
<el-form-item label="发生位置:"> <el-form-item label="发生位置:">
<el-input v-model="formInline.keyword" placeholder="请输入"></el-input> <el-input v-model="formInline.keyword" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="所属工序:"> <el-form-item label="所属工序:">
<el-select v-model="formInline.productionLineId" <el-select
v-model="formInline.productionLineId"
placeholder="请选择" placeholder="请选择"
style="width: 180px" style="width: 180px"
> >
<el-option v-for="(item, index) in basicConfiguration.productLineList" <el-option
v-for="(item, index) in basicConfiguration.productLineList"
:key="item.productionLineId" :key="item.productionLineId"
:label="item.productionLineName" :label="item.productionLineName"
:value="item.productionLineId" :value="item.productionLineId"
...@@ -21,7 +22,8 @@ ...@@ -21,7 +22,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="设备类型"> <el-form-item label="设备类型">
<el-select v-model="formInline.deviceType" <el-select
v-model="formInline.deviceType"
style="width: 180px" style="width: 180px"
placeholder="请选择" placeholder="请选择"
> >
...@@ -36,18 +38,27 @@ ...@@ -36,18 +38,27 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="发生时间"> <el-form-item label="发生时间">
<el-date-picker type="datetimerange" <el-date-picker
type="datetimerange"
v-model="formInline.createTime" v-model="formInline.createTime"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
popper-class="date-picker-popper"
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="default" class="reset-btn-balck-theme" @click="onReset">重置</el-button> <el-button type="default" class="reset-btn-balck-theme" @click="onReset"
<el-button type="default" class="search-btn-balck-theme" @click="onSearch">查询</el-button> >重置</el-button
>
<el-button
type="default"
class="search-btn-balck-theme"
@click="onSearch"
>查询</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="table-box"> <div class="table-box">
...@@ -77,7 +88,7 @@ ...@@ -77,7 +88,7 @@
<span class="view-btn green-color" @click="handleView(row)"> <span class="view-btn green-color" @click="handleView(row)">
查看 查看
</span> </span>
<!-- <span class="table-btn">|</span> <!-- <span class="table-btn">|</span>
<span class="view-btn" @click="handleReject(row)"> <span class="view-btn" @click="handleReject(row)">
驳回 驳回
</span> </span>
...@@ -148,19 +159,24 @@ ...@@ -148,19 +159,24 @@
workSheetDetail.warnType != 20 && workSheetDetail.warnType != 20 &&
workSheetDetail.warnType != 21 workSheetDetail.warnType != 21
" "
>告警值:</span> >告警值:</span
<span class="name" v-else-if="workSheetDetail.warnType == 4">离线时长:</span> >
<span class="name" v-else-if="workSheetDetail.warnType == 4"
>离线时长:</span
>
<span <span
class="value alarm-value" class="value alarm-value"
v-if=" v-if="
workSheetDetail.warnType != 99 && workSheetDetail.warnType != 99 &&
workSheetDetail.warnType != 4 workSheetDetail.warnType != 4
" "
>{{ workSheetDetail.value }}{{ workSheetDetail.unit }}</span> >{{ workSheetDetail.value }}{{ workSheetDetail.unit }}</span
>
<span <span
class="value alarm-value" class="value alarm-value"
v-else-if="workSheetDetail.warnType == 4" v-else-if="workSheetDetail.warnType == 4"
>{{ warnValueFilter(workSheetDetail?.offlineTime) }}</span> >{{ warnValueFilter(workSheetDetail?.offlineTime) }}</span
>
<span class="value alarm-value" v-else> <span class="value alarm-value" v-else>
{{ workSheetDetail.totalConstantTime }} {{ workSheetDetail.totalConstantTime }}
</span> </span>
...@@ -220,7 +236,9 @@ ...@@ -220,7 +236,9 @@
</div> </div>
<div <div
class="content-item" class="content-item"
v-if="workSheetDetail.warnType && workSheetDetail.warnType == 3" v-if="
workSheetDetail.warnType && workSheetDetail.warnType == 3
"
> >
<span class="name">运行状态:</span> <span class="name">运行状态:</span>
<span class="value">{{ workSheetDetail.runState }}</span> <span class="value">{{ workSheetDetail.runState }}</span>
...@@ -230,7 +248,9 @@ ...@@ -230,7 +248,9 @@
v-if="workSheetDetail.metric == 'TSP浓度'" v-if="workSheetDetail.metric == 'TSP浓度'"
> >
<span class="name change-style">TSP粉尘污染溯源结果:</span> <span class="name change-style">TSP粉尘污染溯源结果:</span>
<span class="value">{{ workSheetDetail.sourceTrace || "无"}}</span> <span class="value">{{
workSheetDetail.sourceTrace || "无"
}}</span>
</div> </div>
</div> </div>
</el-col> </el-col>
...@@ -683,7 +703,8 @@ ...@@ -683,7 +703,8 @@
<el-form> <el-form>
<el-form-item label="驳回原因"> <el-form-item label="驳回原因">
<el-select v-model="rejectType"> <el-select v-model="rejectType">
<el-option v-for="(item, i) in reasonList" <el-option
v-for="(item, i) in reasonList"
:key="i" :key="i"
:label="item.description" :label="item.description"
:value="item.rejectType" :value="item.rejectType"
...@@ -693,7 +714,12 @@ ...@@ -693,7 +714,12 @@
</el-form-item> </el-form-item>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-input type="textarea" v-model="rejectReason" :autosize="{ minRows: 2, maxRows: 12 }" placeholder="请输入内容"> <el-input
type="textarea"
v-model="rejectReason"
:autosize="{ minRows: 2, maxRows: 12 }"
placeholder="请输入内容"
>
</el-input> </el-input>
</el-col> </el-col>
</el-row> </el-row>
...@@ -709,9 +735,14 @@ ...@@ -709,9 +735,14 @@
> >
<el-form> <el-form>
<el-form-item label="第几行:"> <el-form-item label="第几行:">
<el-select v-model="bagRow" placeholder="请选择第几行" @change="getCol"> <el-select
v-model="bagRow"
placeholder="请选择第几行"
@change="getCol"
>
<el-option <el-option
v-for="item in rowList" :key="item" v-for="item in rowList"
:key="item"
:label="item" :label="item"
:value="item" :value="item"
> >
...@@ -721,7 +752,8 @@ ...@@ -721,7 +752,8 @@
<el-form-item label="第几列:"> <el-form-item label="第几列:">
<el-select v-model="bagCol" placeholder="请选择第几列"> <el-select v-model="bagCol" placeholder="请选择第几列">
<el-option <el-option
v-for="item in colList" :key="item" v-for="item in colList"
:key="item"
:label="item" :label="item"
:value="item" :value="item"
> >
...@@ -734,24 +766,26 @@ ...@@ -734,24 +766,26 @@
</template> </template>
<script setup> <script setup>
import { ref, reactive, onMounted, onBeforeUnmount,computed } from 'vue' import { ref, reactive, onMounted, onBeforeUnmount, computed } from "vue";
import CommonTable from "@/components/commonTable/index.vue"; import CommonTable from "@/components/commonTable/index.vue";
import commonDialog from "./components/dialog.vue"; import commonDialog from "./components/dialog.vue";
import { getData, getDataFun, postDataJSON } from '@/request/method.js'; import { getData, getDataFun, postDataJSON } from "@/request/method.js";
import moment from 'moment'; import moment from "moment";
import { getToken } from '@/utils/auth.js'; import { getToken } from "@/utils/auth.js";
import { ElMessage } from 'element-plus'; import { ElMessage } from "element-plus";
import { router } from '@/router/index.js'; import { router } from "@/router/index.js";
const formInline = ref({ const formInline = ref({
eventName: '', eventName: "",
keyword: '', keyword: "",
warnType: '', warnType: "",
productionLineId: '', productionLineId: "",
deviceType: '', deviceType: "",
createTime: [ createTime: [
moment(new Date().getTime() - 1000 * 60 * 60 * 24 * 30).format('YYYY-MM-DD HH:mm:ss'), moment(new Date().getTime() - 1000 * 60 * 60 * 24 * 30).format(
moment(new Date()).format('YYYY-MM-DD HH:mm:ss') "YYYY-MM-DD HH:mm:ss"
] ),
moment(new Date()).format("YYYY-MM-DD HH:mm:ss"),
],
}); });
const formModel = ref({ const formModel = ref({
...@@ -759,90 +793,90 @@ const formModel = ref({ ...@@ -759,90 +793,90 @@ const formModel = ref({
}); });
const viewDialog = ref({ const viewDialog = ref({
title: '闭环控制分派', title: "闭环控制分派",
show: false, show: false,
width: '45%', width: "45%",
}); });
const bagDialog = ref({ const bagDialog = ref({
title: '更换布袋', title: "更换布袋",
show: false, show: false,
width: '30%', width: "30%",
btnGroup: [ btnGroup: [
{ {
attrKey: 'save', attrKey: "save",
label: '保存' label: "保存",
} },
] ],
}); });
const bagRow = ref(''); const bagRow = ref("");
const bagCol = ref(''); const bagCol = ref("");
const rowList = ref([]); const rowList = ref([]);
const colList = ref([]); const colList = ref([]);
const saveBag = ()=>{ const saveBag = () => {
if (bagRow.value === '') { if (bagRow.value === "") {
ElMessage({ ElMessage({
type: 'warning', type: "warning",
message: '请选择第几行' message: "请选择第几行",
}); });
return; return;
} }
if (bagCol.value === '') { if (bagCol.value === "") {
ElMessage({ ElMessage({
type: 'warning', type: "warning",
message: '请选择第几列' message: "请选择第几列",
}); });
return; return;
} }
const params = { const params = {
workTicketNo: workTicketNo.value, workTicketNo: workTicketNo.value,
row: bagRow.value, row: bagRow.value,
column: bagCol.value column: bagCol.value,
}; };
postDataJSON('/transaction/doc/changeBag',params).then(res => { postDataJSON("/transaction/doc/changeBag", params).then((res) => {
if (res.code === 1) { if (res.code === 1) {
ElMessage({ ElMessage({
type: 'success', type: "success",
message: '更换布袋成功' message: "更换布袋成功",
}); });
bagDialog.value.show = false; bagDialog.value.show = false;
} }
}); });
} };
const rowLineMap = ref(null); const rowLineMap = ref(null);
const getBagRowLine = (no) => { const getBagRowLine = (no) => {
const url = '/bag/cycle/getCompartEnumList'; const url = "/bag/cycle/getCompartEnumList";
const params = { const params = {
deviceNo: no deviceNo: no,
} };
getDataFun(url,params).then(res => { getDataFun(url, params).then((res) => {
if (res.code === 1) { if (res.code === 1) {
rowLineMap.value = res.data; rowLineMap.value = res.data;
res.data.forEach(item => { res.data.forEach((item) => {
rowList.value.push(item.row); rowList.value.push(item.row);
}); });
} }
}) });
} };
const getCol = ()=>{ const getCol = () => {
rowLineMap.value.forEach(item => { rowLineMap.value.forEach((item) => {
if (item.row === bagRow.value) { if (item.row === bagRow.value) {
colList.value = item.columns; colList.value = item.columns;
} }
}); });
} };
const viewData = { const viewData = {
D: "在线监控(监测)仪器仪表故障", D: "在线监控(监测)仪器仪表故障",
B: "在线监控(监测)仪器仪表与数采通讯异常", B: "在线监控(监测)仪器仪表与数采通讯异常",
VGD: "在线监控(监测)仪器仪表与数采通讯异常", VGD: "在线监控(监测)仪器仪表与数采通讯异常",
} };
const warnValueFilter = computed(()=> { const warnValueFilter = computed(() => {
return (offlineTime)=> { return (offlineTime) => {
if (offlineTime == null || offlineTime <= 0) { if (offlineTime == null || offlineTime <= 0) {
return "--"; return "--";
} }
...@@ -871,28 +905,28 @@ const warnValueFilter = computed(()=> { ...@@ -871,28 +905,28 @@ const warnValueFilter = computed(()=> {
} }
return s; return s;
} }
} };
}); });
const imgUrlList = ref([]); const imgUrlList = ref([]);
const alarmImg = ref([]); const alarmImg = ref([]);
const srcList = ref([]); const srcList = ref([]);
const workTicketNo = ref(''); const workTicketNo = ref("");
const rejectType = ref(''); const rejectType = ref("");
const reasonList = ref([]); const reasonList = ref([]);
const rejectReason = ref(''); const rejectReason = ref("");
const rejectDialog = ref({ const rejectDialog = ref({
title: '驳回申请', title: "驳回申请",
show: false, show: false,
width: '35%', width: "35%",
btnGroup: [ btnGroup: [
{ {
attrKey: 'save', attrKey: "save",
label: '保存' label: "保存",
} },
] ],
}); });
const getIndex = (index) => { const getIndex = (index) => {
...@@ -902,47 +936,49 @@ const getIndex = (index) => { ...@@ -902,47 +936,49 @@ const getIndex = (index) => {
const basicConfiguration = reactive({ const basicConfiguration = reactive({
ticketEventName: [], ticketEventName: [],
deviceList: [], deviceList: [],
productLineList: [{productionLineName: '全部', productionLineId: ''}], productLineList: [{ productionLineName: "全部", productionLineId: "" }],
}); });
const workSheetDetail = ref(null); const workSheetDetail = ref(null);
const getProDuctLine = ()=>{ const getProDuctLine = () => {
const url = '/transaction/getProductionLine'; const url = "/transaction/getProductionLine";
getData(url).then(res => { getData(url).then((res) => {
basicConfiguration.productLineList.push(...res.data); basicConfiguration.productLineList.push(...res.data);
}); });
} };
const getColor = computed(()=>{ const getColor = computed(() => {
return (level) => { return (level) => {
if (level == 2) { if (level == 2) {
return 'red' return "red";
} else if (level == 1) { } else if (level == 1) {
return 'yellow' return "yellow";
} else { } else {
return 'purple' return "purple";
}
} }
};
}); });
const onSearch = ()=> { const onSearch = () => {
searchData(); searchData();
} };
const onReset =()=> { const onReset = () => {
currentPage.value = 1; currentPage.value = 1;
pageSize.value = 20; pageSize.value = 20;
formInline.value.eventName = ''; formInline.value.eventName = "";
formInline.value.keyword = ''; formInline.value.keyword = "";
formInline.value.productionLineId = ''; formInline.value.productionLineId = "";
formInline.value.deviceType = ''; formInline.value.deviceType = "";
formInline.value.createTime = [ formInline.value.createTime = [
moment(new Date().getTime() - 1000 * 60 * 60 * 24 * 30).format('YYYY-MM-DD HH:mm:ss'), moment(new Date().getTime() - 1000 * 60 * 60 * 24 * 30).format(
moment(new Date()).format('YYYY-MM-DD HH:mm:ss') "YYYY-MM-DD HH:mm:ss"
] ),
moment(new Date()).format("YYYY-MM-DD HH:mm:ss"),
];
searchData(); searchData();
} };
const personTag = ref([]); const personTag = ref([]);
const handleView = async (data) => { const handleView = async (data) => {
viewDialog.value.title = data.eventName; viewDialog.value.title = data.eventName;
...@@ -950,21 +986,20 @@ const handleView = async (data) => { ...@@ -950,21 +986,20 @@ const handleView = async (data) => {
viewDialog.value.show = true; viewDialog.value.show = true;
personTag.value = []; personTag.value = [];
if (res.handleUsers && res.handleUsers.length > 0) { if (res.handleUsers && res.handleUsers.length > 0) {
res.handleUsers.forEach(item => { res.handleUsers.forEach((item) => {
personTag.value.push({ personTag.value.push({
type: 'info', type: "info",
name: item.userName, name: item.userName,
userId: item.userId, userId: item.userId,
userName: item.userName userName: item.userName,
}); });
}); });
} }
disposeWorkSheetDetail(res); disposeWorkSheetDetail(res);
};
} const dialogReason = ref("");
const dialogReason = ref(''); const dialogMeasure = ref("");
const dialogMeasure = ref(''); const disposeWorkSheetDetail = (obj) => {
const disposeWorkSheetDetail = (obj)=> {
const { const {
reason, reason,
measure, measure,
...@@ -977,8 +1012,8 @@ const disposeWorkSheetDetail = (obj)=> { ...@@ -977,8 +1012,8 @@ const disposeWorkSheetDetail = (obj)=> {
if (forwards.length > 0) { if (forwards.length > 0) {
let receiveUserItem = forwards.slice(-1)[0]; let receiveUserItem = forwards.slice(-1)[0];
} }
dialogMeasure.value = ''; dialogMeasure.value = "";
dialogMeasure.value = ''; dialogMeasure.value = "";
srcList.value = []; srcList.value = [];
imgUrlList.value = []; imgUrlList.value = [];
...@@ -996,140 +1031,143 @@ const disposeWorkSheetDetail = (obj)=> { ...@@ -996,140 +1031,143 @@ const disposeWorkSheetDetail = (obj)=> {
if (imgUrl) { if (imgUrl) {
imgUrlList.value = imgUrl.split(";"); imgUrlList.value = imgUrl.split(";");
} }
} };
// 拒绝 // 拒绝
const handleReject = (data)=> { const handleReject = (data) => {
workTicketNo.value = data.workTicketNo; workTicketNo.value = data.workTicketNo;
rejectDialog.value.show = true; rejectDialog.value.show = true;
} };
const saveReject = ()=>{ const saveReject = () => {
const url = '/transaction/doc/reject'; const url = "/transaction/doc/reject";
const params = { const params = {
workTicketNo: workTicketNo.value, workTicketNo: workTicketNo.value,
rejectType: rejectType.value, rejectType: rejectType.value,
rejectReason: rejectReason.value, rejectReason: rejectReason.value,
isDcTom: 1 isDcTom: 1,
} };
postDataJSON(url,params).then(res => { postDataJSON(url, params).then((res) => {
workTicketNo.value = ''; workTicketNo.value = "";
rejectReason.value = ''; rejectReason.value = "";
rejectType.value = ''; rejectType.value = "";
rejectDialog.value.show = false; rejectDialog.value.show = false;
ElMessage({ ElMessage({
type: 'success', type: "success",
message: '操作成功' message: "操作成功",
}); });
searchData(); searchData();
}); });
} };
const getDetail = (workTicketNo) => { const getDetail = (workTicketNo) => {
return new Promise((resolve,reject) => { return new Promise((resolve, reject) => {
const url = '/transaction/doc/detail'; const url = "/transaction/doc/detail";
const params = { const params = {
workTicketNo workTicketNo,
} };
getDataFun(url,params).then(res => { getDataFun(url, params)
.then((res) => {
workSheetDetail.value = res.data; workSheetDetail.value = res.data;
resolve(res.data); resolve(res.data);
}).catch(err => { })
.catch((err) => {
reject(); reject();
}); });
}); });
} };
const changeBag = (data)=>{ const changeBag = (data) => {
workTicketNo.value = data.workTicketNo; workTicketNo.value = data.workTicketNo;
getBagRowLine(data.deviceNo); getBagRowLine(data.deviceNo);
bagDialog.value.show = true; bagDialog.value.show = true;
} };
const tableData = ref([]); const tableData = ref([]);
const tableColumns = ref([ const tableColumns = ref([
{ {
prop: 'index', prop: "index",
label: '序号', label: "序号",
width: '6%' width: "6%",
}, },
{ {
prop: 'workTicketNo', prop: "workTicketNo",
label: '编号', label: "编号",
width: '10%' width: "10%",
}, },
{ {
prop: 'eventName', prop: "eventName",
label: '事件名称', label: "事件名称",
width: '10%' width: "10%",
}, },
{ {
prop: 'deviceName', prop: "deviceName",
label: '发生位置', label: "发生位置",
width: '10%' width: "10%",
}, },
{ {
prop: 'deviceNo', prop: "deviceNo",
label: '设备编码', label: "设备编码",
width: '10%' width: "10%",
}, },
{ {
prop: 'typeName', prop: "typeName",
label: '设备类型', label: "设备类型",
width: '10%' width: "10%",
}, },
{ {
prop: 'signalName', prop: "signalName",
label: '信号名称', label: "信号名称",
width: '10%' width: "10%",
}, },
{ {
prop: 'productionLine', label: '所属工序',width: '10%' }, prop: "productionLine",
{ prop: 'warnTypeName', label: '类型',width: '10%' }, label: "所属工序",
{ prop: 'createTime', label: '发生时间',width: '10%' }, width: "10%",
{ prop: 'desc', label: '闭环状态',width: '10%' }, },
{ prop: 'handleUser', label: '处理人',width: '10%' }, { prop: "warnTypeName", label: "类型", width: "10%" },
{ prop: 'finishTime', label: '完成时间',width: '10%' }, { prop: "createTime", label: "发生时间", width: "10%" },
{ prop: 'level', label: '级别',width: '5%' }, { prop: "desc", label: "闭环状态", width: "10%" },
{ prop: "handleUser", label: "处理人", width: "10%" },
{ prop: "finishTime", label: "完成时间", width: "10%" },
{ prop: "level", label: "级别", width: "5%" },
{ {
prop: "operation", prop: "operation",
label: "操作", label: "操作",
width: '15%' width: "15%",
}, },
]); ]);
const customerId = getToken("customerId");
const getWarnAndTicketConfigMap = () => {
const customerId = getToken('customerId'); const url = "/system/getWarnAndTicketConfigMap";
const getWarnAndTicketConfigMap = ()=> {
const url = '/system/getWarnAndTicketConfigMap';
const params = { const params = {
customerId customerId,
} };
getDataFun(url,params).then(res => { getDataFun(url, params).then((res) => {
if (res && res.code === 1) { if (res && res.code === 1) {
const { ticketEventName } = res.data; const { ticketEventName } = res.data;
basicConfiguration.ticketEventName = basicConfiguration.ticketEventName.concat(ticketEventName); basicConfiguration.ticketEventName =
basicConfiguration.ticketEventName.concat(ticketEventName);
} }
}); });
}; };
let realBtn = ''; let realBtn = "";
const searchData = ()=>{ const searchData = () => {
currentPage.value = 1; currentPage.value = 1;
pageSize.value = 20; pageSize.value = 20;
getTableData(); getTableData();
} };
const total = ref(0); const total = ref(0);
const getTableData = ()=> { const getTableData = () => {
let keyWord = formInline.value.keyword; let keyWord = formInline.value.keyword;
const params = { const params = {
eventName: formInline.value.eventName, eventName: formInline.value.eventName,
...@@ -1143,21 +1181,21 @@ const getTableData = ()=> { ...@@ -1143,21 +1181,21 @@ const getTableData = ()=> {
handleState: 2, handleState: 2,
belongTo: 1, belongTo: 1,
isDcTom: 1, isDcTom: 1,
deviceType: formInline.value.deviceType deviceType: formInline.value.deviceType,
} };
tableData.value = []; tableData.value = [];
const url = '/transaction/doc/getListParamPage'; const url = "/transaction/doc/getListParamPage";
getDataFun(url,params).then(res => { getDataFun(url, params).then((res) => {
if (res && res.code === 1) { if (res && res.code === 1) {
const { list } = res.data; const { list } = res.data;
total.value = res.data.total; total.value = res.data.total;
disposeType(list); disposeType(list);
tableData.value = list; tableData.value = list;
tableData.value.forEach(item => { tableData.value.forEach((item) => {
item.handleUser = ''; item.handleUser = "";
item.handleUsers.forEach((ele,eIndex)=>{ item.handleUsers.forEach((ele, eIndex) => {
if (eIndex > 0) { if (eIndex > 0) {
item.handleUser += ',' + ele.userName; item.handleUser += "," + ele.userName;
} else { } else {
item.handleUser += ele.userName; item.handleUser += ele.userName;
} }
...@@ -1165,53 +1203,53 @@ const getTableData = ()=> { ...@@ -1165,53 +1203,53 @@ const getTableData = ()=> {
}); });
} }
}); });
} };
const disposeType = (list)=> { const disposeType = (list) => {
if (list.length) { if (list.length) {
list.forEach(l => { list.forEach((l) => {
if (!l.deviceNo) { if (!l.deviceNo) {
l.deviceNo = '--'; l.deviceNo = "--";
} }
switch (l.warnType) { switch (l.warnType) {
case 0: case 0:
l.warnType = '人工提交' l.warnType = "人工提交";
break break;
case 1: case 1:
l.warnType = '超标' l.warnType = "超标";
break break;
case 2: case 2:
l.warnType = '超低' l.warnType = "超低";
break break;
case 3: case 3:
l.warnType = '生产治理同步率' l.warnType = "生产治理同步率";
break break;
case 4: case 4:
l.warnType = '离线' l.warnType = "离线";
break break;
case 5: case 5:
l.warnType = '其他' l.warnType = "其他";
break break;
case 10: case 10:
l.warnType = '持续超标' l.warnType = "持续超标";
break break;
case 11: case 11:
l.warnType = '三倍超标' l.warnType = "三倍超标";
break break;
case 99: case 99:
l.warnType = '恒值' l.warnType = "恒值";
break break;
} }
}) });
} }
} };
const getDeviceType =() => { const getDeviceType = () => {
const url = '/alarm/getDeviceType'; const url = "/alarm/getDeviceType";
getData(url).then(res=>{ getData(url).then((res) => {
basicConfiguration.deviceList = res.data; basicConfiguration.deviceList = res.data;
}); });
} };
onMounted(() => { onMounted(() => {
getProDuctLine(); getProDuctLine();
...@@ -1235,7 +1273,7 @@ const handlePaginationChange = (pagination) => { ...@@ -1235,7 +1273,7 @@ const handlePaginationChange = (pagination) => {
width: 100%; width: 100%;
height: calc(100% - 14px); height: calc(100% - 14px);
box-sizing: border-box; box-sizing: border-box;
background: #181D21; background: #181d21;
padding: 20px; padding: 20px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
...@@ -1256,7 +1294,7 @@ const handlePaginationChange = (pagination) => { ...@@ -1256,7 +1294,7 @@ const handlePaginationChange = (pagination) => {
// color: #faa508; // color: #faa508;
position: relative; position: relative;
&::before { &::before {
content: ' '; content: " ";
width: 8px; width: 8px;
height: 8px; height: 8px;
border-radius: 50%; border-radius: 50%;
...@@ -1269,7 +1307,7 @@ const handlePaginationChange = (pagination) => { ...@@ -1269,7 +1307,7 @@ const handlePaginationChange = (pagination) => {
.red { .red {
position: relative; position: relative;
&::before { &::before {
content: ' '; content: " ";
width: 8px; width: 8px;
height: 8px; height: 8px;
border-radius: 50%; border-radius: 50%;
...@@ -1283,7 +1321,7 @@ const handlePaginationChange = (pagination) => { ...@@ -1283,7 +1321,7 @@ const handlePaginationChange = (pagination) => {
.purple { .purple {
position: relative; position: relative;
&::before { &::before {
content: ' '; content: " ";
width: 8px; width: 8px;
height: 8px; height: 8px;
border-radius: 50%; border-radius: 50%;
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
range-separator="~" range-separator="~"
start-placeholder="开始时间" start-placeholder="开始时间"
end-placeholder="结束时间" end-placeholder="结束时间"
popper-class="date-picker-popper"
:teleported="false" :teleported="false"
/> />
</el-form-item> </el-form-item>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment