This commit is contained in:
zty 2024-08-16 10:57:03 +08:00
commit 048a2339d4
48 changed files with 1409 additions and 178 deletions

View File

@ -6,7 +6,7 @@ NODE_ENV = development
VUE_APP_TITLE = '托克逊能源管理平台'
# VUE_APP_TITLE = '中建材光子科技有限公司'
# VUE_APP_TITLE = '超低排放系统'
VUE_APP_PJ = 'gx'
VUE_APP_PJ = 'pf'
# 接口地址
#VUE_APP_API_BASEURL = http://1.203.161.103:2800/api
@ -16,10 +16,10 @@ VUE_APP_PJ = 'gx'
# VUE_APP_API_BASEURL = http://127.0.0.1:2226/api
#测试环境
# VUE_APP_API_BASEURL = http://49.232.14.174:2226/api
VUE_APP_API_BASEURL = http://127.0.0.1:2226/api
# VUE_APP_BASEURL = http://49.232.14.174:2226
VUE_APP_BASEURL = http://127.0.0.1:2226
VUE_APP_API_BASEURL = http://49.232.14.174:2226/api
#VUE_APP_API_BASEURL = http://127.0.0.1:2226/api
VUE_APP_BASEURL = http://49.232.14.174:2226
#VUE_APP_BASEURL = http://127.0.0.1:2226
# #光子
# VUE_APP_API_BASEURL = http://49.232.14.174:2250/api

View File

@ -369,8 +369,8 @@ export default {
prints: {
name: "打印",
req: async function (data) {
return await http.post(`${config.API_URL}/prints/`, data);
// return await http.post("http://localhost:8080/prints/", data);
// return await http.post(`${config.API_URL}/prints/`, data);
return await http.post("http://localhost:8080/prints/", data);
},
},
};

5
src/assets/icons/Env.vue Normal file
View File

@ -0,0 +1,5 @@
<template>
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 32 32">
<path fill="currentColor" d="M5 5c2.614 8.976 2.362 13.181 6.896 16.693c3.97 3.026 7.94 2.237 10.112 1.914L25.398 27h2l-3.98-3.98C23.393 20.613 29.01 5 5 5m3.084 2.002c.135.011.45.121 1.047.396c3.999 1.85 5.408 4.592 6.931 7.4c1.096 2.023 3.019 5.103 4.374 6.095c1.356.983 2.836 1.709-.288.398c-3.134-1.311-5.417-5.032-6.931-7.85c-1.164-2.162-2.163-4.153-4.336-5.613c0 0-1.203-.86-.797-.826" />
</svg>
</template>

View File

@ -21,4 +21,5 @@ export { default as Shenpi } from './Shenpi.vue'
export { default as Shebei } from './Shebei.vue'
export { default as Xiaoshou } from './Xiaoshou.vue'
export { default as Zhixing } from './Zhixing.vue'
export { default as Zhizao } from './Zhizao.vue'
export { default as Zhizao } from './Zhizao.vue'
export { default as Env } from './Env.vue'

View File

@ -898,7 +898,7 @@ const routes = [
path: "/enp",
meta: {
title: "环保模块",
icon: "el-icon-grid",
icon: "sc-icon-env",
type: "menu",
perms: ["enm_hb"],
},
@ -1401,11 +1401,21 @@ const routes = [
},
component: "wpm_gx/qiepian",
},
{
name: "baipianpao",
path: "/wpm_gx/baipianpao",
meta: {
title: "白片抛",
// icon: "el-icon-files",
perms: ["wpm_bpp"],
},
component: "wpm_gx/baipianpao",
},
{
name: "saobian",
path: "/wpm_gx/saobian",
meta: {
title: "扫边",
title: "扫边A",
// icon: "el-icon-cellphone",
perms: ["wpm_sb"],
},
@ -1422,25 +1432,45 @@ const routes = [
component: "wpm_gx/heihua",
},
{
name: "shaojie",
path: "/wpm_gx/shaojie",
name: "tuihuo",
path: "/wpm_gx/tuihuo",
meta: {
title: "烧结",
title: "退火",
// icon: "el-icon-cellphone",
perms: ["wpm_sj"],
},
component: "wpm_gx/shaojie",
component: "wpm_gx/tuihuo",
},
{
name: "jianbo",
path: "/wpm_gx/jianbo",
meta: {
title: "减薄",
title: "减薄A",
// icon: "el-icon-cellphone",
perms: ["wpm_jb"],
},
component: "wpm_gx/jianbo",
},
{
name: "jianbob",
path: "/wpm_gx/jianbob",
meta: {
title: "减薄B",
// icon: "el-icon-cellphone",
perms: ["wpm_jbb"],
},
component: "wpm_gx/jianbob",
},
{
name: "pingmo",
path: "/wpm_gx/pingmo",
meta: {
title: "平磨",
// icon: "el-icon-cellphone",
perms: ["wpm_mp"],
},
component: "wpm_gx/pingmo",
},
{
name: "jingdiao",
path: "/wpm_gx/jingdiao",
@ -1452,14 +1482,34 @@ const routes = [
component: "wpm_gx/jingdiao",
},
{
name: "mopao",
path: "/wpm_gx/mopao",
name: "yicipao",
path: "/wpm_gx/yicipao",
meta: {
title: "抛",
title: "一次抛",
// icon: "el-icon-cellphone",
perms: ["wpm_mp"],
perms: ["wpm_ycp"],
},
component: "wpm_gx/mopao",
component: "wpm_gx/yicipao",
},
{
name: "saobianb",
path: "/wpm_gx/saobianb",
meta: {
title: "扫边B",
// icon: "el-icon-cellphone",
perms: ["wpm_sbb"],
},
component: "wpm_gx/saobianb",
},
{
name: "chengpinpao",
path: "/wpm_gx/chengpinpao",
meta: {
title: "成品抛",
// icon: "el-icon-cellphone",
perms: ["wpm_cpp"],
},
component: "wpm_gx/chengpinpao",
},
{
name: "daojiao",
@ -1543,14 +1593,14 @@ const routes = [
component: "qm/process",
},
{
name: "qmProcess",
path: "/qm/qmProcess",
name: "qmProcess2",
path: "/qm/qmProcess2",
meta: {
title: "过程抽检",
// icon: "el-icon-cellphone",
perms: ["ptest"],
},
component: "qm/process",
component: "qm/process2",
},
{
name: "qmInm",

View File

@ -10,6 +10,14 @@ html.dark {
--el-color-primary-light-5: var(--el-color-primary-dark-4) !important;
--el-color-primary-light-3: var(--el-color-primary-dark-3) !important;
--el-menu-active-color: #ffffff !important;
// --el-bg-color: #1e789a;
// --el-text-color-regular: #ffffff;
.el-dialog__close {
color: #ffffff;
}
.el-dialog__title {
color: #ffffff;
}
.el-tag {
background-color: #f8f5f5 !important;

View File

@ -375,4 +375,28 @@ body .el-table th.gutter {
.el-dialog__footer {
padding: 6px 6px 6px;
}
.aside_one,
.aside_side {
height: 100%;
background: var(--el-bg-color-overlay);
border-color: var(--el-border-color-light);
// border-radius: 4px;
background: rgb(4, 50, 83);
background-color: rgb(4, 50, 83);
box-shadow: inset 0px 0px 30px 15px rgb(7, 79, 109);
border: 1px solid #1279c3;
}
.el-aside:has(> .aside_one) {
padding: 8px;
border-right: none;
}
.infoLine {
color: #ffffff;
}
.typeLine {
color: #ffffff;
}

View File

@ -184,4 +184,12 @@ export const schedulePeriodEnum = new EnumFactory({
'minutes': '分钟',
'hours': '小时',
'days': '天',
})
})
export const wmState = new EnumFactory({
10: { text: '合格', type: 'success' },
20: { text: '不合格', type: 'warning' },
30: { text: '返修', type: 'warning' },
40: { text: '检验', type: 'primary' },
50: { text: '报废', type: 'danger' },
}, parseInt)

View File

@ -0,0 +1,166 @@
<template>
<el-container>
<el-header class="panel_title">
<div class="left-panel">
车辆清单
</div>
<div class="right-panel">
<!-- <div class="backMap" @click="backtoMap">
切换地图
<el-icon>
<Switch />
</el-icon>
</div> -->
<el-button type="primary" @click="backtoMap"> 返回地图 </el-button>
</div>
</el-header>
<el-main class="nopadding">
<el-container>
<el-header class="searchWrap">
<el-tabs
v-model="activeName"
class="demo-tabs"
@tab-click="handleClick"
type="card"
>
<el-tab-pane
v-for="item in tabOptions"
v-bind:key="item.name"
:label="item.label"
:name="item.name"
>
</el-tab-pane>
</el-tabs>
</el-header>
<el-main class="nopadding">
<scTable v-if="activeName==10" ref="table" :data="data1" :params="params" :query="query" size="large" >
<el-table-column prop="index" label="序号"></el-table-column>
<el-table-column prop="cphm" label="车牌号码/登记号码"></el-table-column>
<el-table-column prop="clsbdm" label="车辆识别代码VIN"></el-table-column>
<el-table-column prop="scrq" label="生产日期"></el-table-column>
<el-table-column prop="cpys" label="车牌颜色"></el-table-column>
<el-table-column prop="zcdjrq" label="注册登记日期"></el-table-column>
<el-table-column prop="clppxh" label="车辆品牌型号"></el-table-column>
<el-table-column prop="fdjhm" label="发动机号码"></el-table-column>
<el-table-column prop="rllx" label="燃料类型"></el-table-column>
<el-table-column prop="pfjd" label="排放阶段"></el-table-column>
<el-table-column prop="lwzt" label="联网状态"></el-table-column>
<el-table-column prop="scqd" label="随车清单"></el-table-column>
<el-table-column prop="xsz" label="行驶证"></el-table-column>
<el-table-column prop="clsyr" label="车辆所有人(单位)"></el-table-column>
</scTable>
<scTable v-else-if="activeName==20" ref="table" :data="data2" :params="params" :query="query" size="large" style=""
@row-click="rowClick" @dataChange="updateCount">
<el-table-column prop="index" label="序号"></el-table-column>
<el-table-column prop="cphm" label="车牌号码/登记号码"></el-table-column>
<el-table-column prop="clsbdm" label="车辆识别代码VIN"></el-table-column>
<el-table-column prop="scrq" label="生产日期"></el-table-column>
<el-table-column prop="cpys" label="车牌颜色"></el-table-column>
<el-table-column prop="zcdjrq" label="注册登记日期"></el-table-column>
<el-table-column prop="clppxh" label="车辆品牌型号"></el-table-column>
<el-table-column prop="fdjhm" label="发动机号码"></el-table-column>
<el-table-column prop="rllx" label="燃料类型"></el-table-column>
<el-table-column prop="pfjd" label="排放阶段"></el-table-column>
<el-table-column prop="lwzt" label="联网状态"></el-table-column>
<el-table-column prop="scqd" label="随车清单"></el-table-column>
<el-table-column prop="xsz" label="行驶证"></el-table-column>
<el-table-column prop="clsyr" label="车辆所有人(单位)"></el-table-column>
</scTable>
<scTable v-else-if="activeName==30" ref="table" :data="data3" :params="params" :query="query" size="large" style=""
@row-click="rowClick" @dataChange="updateCount">
<el-table-column prop="index" label="序号"></el-table-column>
<el-table-column prop="hbdjbh" label="环保登记编号"></el-table-column>
<el-table-column prop="jxscrq" label="机械生产日期"></el-table-column>
<el-table-column prop="pfjd" label="排放阶段"></el-table-column>
<el-table-column prop="rllx" label="燃料类型"></el-table-column>
<el-table-column prop="jxzl" label="机械种类"></el-table-column>
<el-table-column prop="jxhbdm" label="机械环保代码"></el-table-column>
<el-table-column prop="jxlx" label="机械型号"></el-table-column>
<el-table-column prop="fdjxh" label="发动机型号"></el-table-column>
<el-table-column prop="fdjscc" label="发动机生产厂"></el-table-column>
<el-table-column prop="fdjbh" label="发动机编号"></el-table-column>
<el-table-column prop="zczp" label="整车(机)铭牌照片"></el-table-column>
<el-table-column prop="fdjzp" label="发动机名牌照片"></el-table-column>
<el-table-column prop="jxhbzp" label="机械环保标签照片"></el-table-column>
<el-table-column prop="ssrdw" label="所属人单位"></el-table-column>
</scTable>
</el-main>
</el-container>
</el-main>
</el-container>
</template>
<script>
export default {
data() {
return {
data1:[{index:1,
cphm:'123456',
clsbdm:'25356',
scrq:"2024-08-02",
cpys:"红色",
zcdjrq:"2024-08-02",
clppxh:"大众",
fdjhm:"白色",
rllx:"煤炭",
pfjd:"初始",
lwzt:"正常",
scqd:"无",
xsz:"无",
clsyr:"管理员",
}],
data2:[{index:1,
cphm:'123456',
clsbdm:'25356',
scrq:"2024-08-02",
cpys:"红色",
zcdjrq:"2024-08-02",
clppxh:"大众",
fdjhm:"白色",
rllx:"煤炭",
pfjd:"初始",
lwzt:"正常",
scqd:"无",
xsz:"无",
clsyr:"管理员",
}],
data3:[{index:1,
hbdjbh:'123456',
jxscrq:'2024-08-02',
pfjd:"初始",
rllx:"煤炭",
jxzl:"无",
jxhbdm:"无",
jxlx:"白色",
fdjxh:"无",
fdjscc:"无",
fdjbh:"无",
zczp:"无",
fdjzp:"无",
jxhbzp:"无",
ssrdw:"无"
}],
activeName:10,
tabOptions:[
{ label: "进出厂车辆运输台账", name: 10 },
{ label: "进出厂车辆运输台账", name: 20 },
{ label: "非道路移动机械电子台账", name: 30 },
]
}
},
methods: {
}
}
</script>

View File

@ -14,7 +14,7 @@
<div class="left-panel">
</div>
<div class="right-panel">
<el-select v-model="query.time_bucket" placeholder="周期" style="margin-left:4px"
<el-select v-model="time_bucket" placeholder="周期" style="margin-left:4px"
@change="handleQuery">
<el-option v-for="item in timeOptions" :key="item.value" :label="item.label"
:value="item.value" />
@ -28,7 +28,7 @@
</div>
</el-header>
<el-main>
<scTable :data="tableData" hideDo v-show="time_bucket == 'minute'">
<scTable :data="tableData" hideDo v-show="time_bucket == 'minute'" v-loading="tableLoading">
<el-table-column type="index" />
<el-table-column prop="equipment_name" label="站点名称" width="140" />
<el-table-column prop="metric_0" label="0" />
@ -83,6 +83,7 @@
export default {
data() {
return {
tableLoading: false,
tableData: [],
metricOptions: [
{ label: 'PM2.5', value: 'pm25' },
@ -131,13 +132,15 @@ export default {
} else if (that.time_bucket == 'hour') {
exec_search = 'enp_edata_hour_nodrain';
}
that.tableLoading = true;
that.$API.bi.dataset.exec.req(exec_search, {
query: that.query,
raise_exception: true
}).then(res => {
console.log(res.data2.ds0);
this.tableData = res.data2.ds0;
})
that.tableLoading = false;
}).catch(e=>{that.tableLoading = false;})
},
},

View File

@ -53,7 +53,7 @@ export default {
query: {},
params: { type: 30, tags: 'carwash' },
cateOptions: [
{ id: 'inner_car', name: '内运输车辆' },
{ id: 'inner_car', name: '内运输车辆' },
{ id: 'inner_car2', name: '非路道移动机械' },
],
apiObj: this.$API.em.equipment.list,

View File

@ -69,13 +69,13 @@
<div class="aside_one">
<div class="pageTitle">排放口及关联设备静态信息</div>
<div class="linesWrap">
<div class="typeLine">
<!-- <div class="typeLine">
<div class="greenBlock">
<div class="greenBlockInner"></div>
</div>
<span>排放口</span>
</div>
</div> -->
<div class="infoLine">
<span class="circles circles_1"></span>
<span>{{ detailItem.name }}</span>
@ -478,6 +478,7 @@ export default {
})
},
resizeChart(name) {
console.log(name)
var myChart = echarts.getInstanceByDom(
document.getElementById(name)
);
@ -487,10 +488,7 @@ export default {
},
addListener() {
var that = this;
if (this.resizeTimeout) {
clearTimeout(this.resizeTimeout);
}
this.resizeTimeout = setTimeout(function () {
setTimeout(function () {
that.resizeChart("dataChart");
that.resizeChart("dataChart2");
that.resizeChart("dataChart3");

View File

@ -27,15 +27,72 @@
<scTable ref="table" :data="tableData" style="width: 100%;" size="large" :apiObj="apiObj"
row-key="id" :params="params" :query="query" @row-click="rowClick"
@dataChange="updateCount">
<el-table-column type="index" width="50" />
<el-table-column prop="number" label="污染源编号" width="180" />
<el-table-column prop="name" label="污染源名称" />
<el-table-column prop="name" label="污染源类型" />
<el-table-column prop="mgroup_name" label="所属工段" />
<el-table-column prop="" label="生产设备" />
<el-table-column prop="" label="治理设备" />
<el-table-column prop="" label="监测设备" />
<el-table-column prop="" label="监控设备" />
<!-- <el-table-column type="index" width="50" /> -->
<el-table-column prop="number" label="编号" width="80" />
<el-table-column prop="name" label="名称" width="120" />
<el-table-column prop="type" label="类型" width="100">
<template #default="scope">{{ drainTypeEnum[scope.row.cate]?.text }}
</template>
</el-table-column>
<el-table-column prop="mgroup_name" label="所属工段" width="100" />
<el-table-column label="物料名称" min-width="100" show-overflow-tooltip />
<el-table-column label="物料分类" min-width="80" show-overflow-tooltip />
<el-table-column label="主要参数" min-width="100" show-overflow-tooltip />
<el-table-column label="封闭方式" min-width="100" show-overflow-tooltip />
<el-table-column label="输送/堆取方式" min-width="120" show-overflow-tooltip />
<el-table-column label="治理措施" min-width="100" show-overflow-tooltip />
<el-table-column label="生产设备" min-width="100" show-overflow-tooltip>
<template #default="scope">
<div v-for="item in scope.row.equip_data" v-bind:key="item.id">
<div v-if="item.type == 10">
<div>
<el-tag :type="runningStateEnum[item.running_state]?.type">{{
runningStateEnum[item.running_state]?.text }}</el-tag>|
{{ item.name }}
</div>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="治理设备" min-width="100" show-overflow-tooltip>
<template #default="scope">
<div v-for="item in scope.row.equip_data" v-bind:key="item.id">
<div v-if="item.type == 30">
<div>
<el-tag :type="runningStateEnum[item.running_state]?.type">{{
runningStateEnum[item.running_state]?.text }}</el-tag>|
{{ item.name }}
</div>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="监测设备" min-width="100" show-overflow-tooltip>
<template #default="scope">
<div v-for="item in scope.row.equip_data" v-bind:key="item.id">
<div v-if="item.type == 40">
<div>
<el-tag :type="runningStateEnum[item.running_state]?.type">{{
runningStateEnum[item.running_state]?.text }}</el-tag>|
{{ item.name }}
</div>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="监控设备" min-width="100" show-overflow-tooltip>
<template #default="scope">
<div v-for="item in scope.row.equip_data" v-bind:key="item.id">
<div v-if="item.type == 50">
<div>
<el-tag :type="runningStateEnum[item.running_state]?.type">{{
runningStateEnum[item.running_state]?.text }}</el-tag>|
{{ item.name }}
</div>
</div>
</div>
</template>
</el-table-column>
</scTable>
</el-main>
</el-container>
@ -100,8 +157,8 @@
<div>
<span class="infotitle">生产能力</span>
<span v-if="eqs.parameter_json && eqs.parameter_json.生产能力">{{
eqs.parameter_json.生产能力
}}</span>
eqs.parameter_json.生产能力
}}</span>
</div>
</el-col>
</el-row>
@ -119,22 +176,22 @@
<el-col :span="12">
<div><span class="infotitle">风量</span>
<span v-if="eqz.parameter_json && eqz.parameter_json.风量">{{
eqz.parameter_json.风量
}}/h</span>
eqz.parameter_json.风量
}}/h</span>
</div>
</el-col>
<el-col :span="12">
<div><span class="infotitle">过滤面积</span>
<span v-if="eqz.parameter_json && eqz.parameter_json.过滤面积">{{
eqz.parameter_json.过滤面积
}} </span>
eqz.parameter_json.过滤面积
}} </span>
</div>
</el-col>
<el-col :span="12">
<div><span class="infotitle">布袋材质</span>
<span v-if="eqz.parameter_json && eqz.parameter_json.布袋材质">{{
eqz.parameter_json.布袋材质
}} </span>
eqz.parameter_json.布袋材质
}} </span>
</div>
</el-col>
<el-col :span="12">
@ -188,9 +245,11 @@
<script>
import * as echarts from "echarts";
import { drainTypeEnum } from "@/utils/enum.js";
import { runningStateEnum } from "@/utils/enum.js";
export default {
data() {
return {
runningStateEnum,
drainTypeEnum,
count: 0,
eqs: {},
@ -199,7 +258,7 @@ export default {
pollutantDetail: false,
query: {},
apiObj: this.$API.enp.drain.list,
params: { type: 20 },
params: { type: 20, equip_data: 'base' },
detailItem: {},
detailForm: {
day: 18,

View File

@ -2,7 +2,7 @@
<el-container>
<el-header class="panel_title">
<div class="left-panel">
外运输
外运输
</div>
<div class="right-panel">
<!-- <div class="backMap" @click="backtoMap">
@ -37,26 +37,57 @@
</div>
</el-header>
<el-main>
<scTable ref="table" :apiObj="apiObj" :params="params" :query="query" size="large" style=""
<scTable ref="table" :data="data" :params="params" :query="query" size="large" style=""
@row-click="rowClick" @dataChange="updateCount">
<el-table-column type="index" width="50" />
<el-table-column prop="vehicle_number" label="车牌号码"></el-table-column>
<el-table-column prop="access_time" label="过门禁时间"></el-table-column>
<el-table-column prop="type" label="进出厂类型">
<template #default="scope">
<span>{{ type_[scope.row.type] }}</span>
</template>
</el-table-column>
<el-table-column prop="door_name" label="门禁名称"></el-table-column>
<el-table-column prop="vehicle_number" label="车辆识别代号VIN"></el-table-column>
<el-table-column prop="emission_standard" label="排放标准"></el-table-column>
<el-table-column prop="" label="新能源">
<template #default="scope">
<el-tag type="info" v-if="scope.row.is_new_energy"></el-tag>
<el-tag v-else type="danger"></el-tag>
</template>
</el-table-column>
<el-table-column prop="index" label="序号"></el-table-column>
<el-table-column prop="bcrkbh" label="出入口编号"></el-table-column>
<el-table-column prop="dzbh" label="道闸编号"></el-table-column>
<el-table-column prop="dtgfs" label="抬杆方式"></el-table-column>
<el-table-column prop="jcsj" label="进厂时间"></el-table-column>
<el-table-column prop="ccsj" label="出场时间"></el-table-column>
<el-table-column prop="gcllx" label="车俩类型"></el-table-column>
<el-table-column prop="hclys" label="车辆颜色"></el-table-column>
<el-table-column prop="cph" label="车牌号"></el-table-column>
<el-table-column prop="zcdjsj" label="注册登记日期"></el-table-column>
<el-table-column prop="lclppxh" label="车辆品牌型号"></el-table-column>
<el-table-column prop="fdjhm" label="发动机号码"></el-table-column>
</scTable>
<el-dialog width="650px" v-model="dialogFormVisible" title="车辆运输台账详情" >
<el-descriptions :column="2" width="600px">
<el-descriptions-item label="出入口编号">{{ ysdata.crkbh }}</el-descriptions-item>
<el-descriptions-item label="道闸编号">{{ ysdata.dzbh }}</el-descriptions-item>
<el-descriptions-item label="抬杆方式">{{ ysdata.tgfs }}</el-descriptions-item>
<el-descriptions-item label="进厂时间">{{ ysdata.jcsj }}</el-descriptions-item>
<el-descriptions-item label="出厂时间">{{ ysdata.ccsj }}</el-descriptions-item>
<el-descriptions-item label="车辆类型">{{ ysdata.cllx }}</el-descriptions-item>
<el-descriptions-item label="车牌颜色">{{ ysdata.clys }}</el-descriptions-item>
<el-descriptions-item label="车牌号">{{ ysdata.cph }}</el-descriptions-item>
<el-descriptions-item label="注册登记日期">{{ ysdata.zcdjsj }}</el-descriptions-item>
<el-descriptions-item label="车辆识别代码VIN">{{ ysdata.cpsbdm }}</el-descriptions-item>
<el-descriptions-item label="车辆品牌型号">{{ ysdata.clppxh }}</el-descriptions-item>
<el-descriptions-item label="发动机号码">{{ ysdata.fdjhm }}</el-descriptions-item>
<el-descriptions-item label="燃料类型">{{ ysdata.rllx }}</el-descriptions-item>
<el-descriptions-item label="排放阶段">{{ ysdata.pfjd }}</el-descriptions-item>
<el-descriptions-item label="使用性质">{{ ysdata.syxz }}</el-descriptions-item>
<el-descriptions-item label="联网状态">{{ ysdata.lwzt }}</el-descriptions-item>
<el-descriptions-item label="进厂运输货物名称">{{ ysdata.jcyshwmc }}</el-descriptions-item>
<el-descriptions-item label="进厂运输货物量">{{ ysdata.jchwl }}</el-descriptions-item>
<el-descriptions-item label="出厂运输货物名称">{{ ysdata.cchwmc }}</el-descriptions-item>
<el-descriptions-item label="出厂运输货物量">{{ ysdata.cchwl }}</el-descriptions-item>
<el-descriptions-item label="车队名称">{{ ysdata.cdmc }}</el-descriptions-item>
<el-descriptions-item label="进厂照片">{{ ysdata.jczp }}</el-descriptions-item>
<el-descriptions-item label="随车清单">{{ ysdata.sdqd }}</el-descriptions-item>
<el-descriptions-item label="行驶证">{{ ysdata.xsz }}</el-descriptions-item>
<el-descriptions-item label="手动抬杆照片">{{ ysdata.sdtgzp }}</el-descriptions-item>
</el-descriptions>
<template #footer>
<div class="dialog-footer">
<el-button @click="dialogFormVisible = false">取消</el-button>
</div>
</template>
</el-dialog>
</el-main>
</el-container>
</el-main>
@ -66,6 +97,37 @@
export default {
data() {
return {
data:[{index:1,
crkbh:'123456',
dzbh:'25356',
tgfs:"自动",
jcsj:"2024-08-02",
ccsj:"2024-08-02",
cllx:"运输车辆",
clys:"白色",
cph:"Ad1233",
zcdjsj:"",
cpsbdm:"",
clppxh:"",
fdjhm:"",
rllx:"",
pfjd:"",
syxz:"",
lxzt:"",
jcyshwmc:"",
jchwl:"",
cchwmc:"",
cchwl:"",
cdmc:"",
jczp:"",
sdqd:"",
xsz:"",
sdtgzp:""
}],
dialogFormVisible:false,
ysdata:{},
query: {},
count: 0,
timeRange: [],
@ -95,6 +157,10 @@ export default {
updateCount(res, tableData) {
this.count = res.count
},
rowClick(row){
this.ysdata = row;
this.dialogFormVisible=true;
},
handleQuery() {
if (this.timeRange) {
this.query.access_time__gte = this.timeRange[0]
@ -112,4 +178,4 @@ export default {
},
}
}
</script>
</script>

View File

@ -0,0 +1,115 @@
<template>
<el-container>
<el-header class="panel_title">
<div class="left-panel">
厂外运输
</div>
<div class="right-panel">
<!-- <div class="backMap" @click="backtoMap">
切换地图
<el-icon>
<Switch />
</el-icon>
</div> -->
<el-button type="primary" @click="backtoMap"> 返回地图 </el-button>
</div>
</el-header>
<el-main class="nopadding">
<el-container>
<el-header class="searchWrap">
<div class="left-panel">
<div style="font-size: 1.8vh;">
车辆进出次数<span class="totalNumber">{{ count }}</span>
</div>
</div>
<div class="right-panel">
<el-date-picker v-model="timeRange" type="datetimerange" range-separator=""
start-placeholder="开始时间" end-placeholder="结束时间" @change="handleQuery" style="width: 100%"
clearable />
<el-select v-model="query.type" placeholder="出入类型" clearable @change="handleQuery">
<el-option v-for="item in typeOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
<el-input :input-style="searchInputStyle" style="width:12vw;margin:0 5px" v-model="query.search"
placeholder="车牌号"></el-input>
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
</div>
</el-header>
<el-main>
<scTable ref="table" :apiObj="apiObj" :params="params" :query="query" size="large" style=""
@row-click="rowClick" @dataChange="updateCount">
<el-table-column type="index" width="50" />
<el-table-column prop="vehicle_number" label="车牌号码"></el-table-column>
<el-table-column prop="access_time" label="过门禁时间"></el-table-column>
<el-table-column prop="type" label="进出厂类型">
<template #default="scope">
<span>{{ type_[scope.row.type] }}</span>
</template>
</el-table-column>
<el-table-column prop="door_name" label="门禁名称"></el-table-column>
<el-table-column prop="vehicle_number" label="车辆识别代号VIN"></el-table-column>
<el-table-column prop="emission_standard" label="排放标准"></el-table-column>
<el-table-column prop="" label="新能源">
<template #default="scope">
<el-tag type="info" v-if="scope.row.is_new_energy"></el-tag>
<el-tag v-else type="danger"></el-tag>
</template>
</el-table-column>
</scTable>
</el-main>
</el-container>
</el-main>
</el-container>
</template>
<script>
export default {
data() {
return {
query: {},
count: 0,
timeRange: [],
cateOptions: [
{ id: 1, name: '货车' },
{ id: 2, name: '罐车' },
],
typeOptions: [
{ id: 1, name: '进厂' },
{ id: 2, name: '出厂' }
],
statusOptions: [
{ id: '', name: '全部' },
{ id: 10, name: '已录入' },
{ id: 20, name: '未录入' }
],
type_: {
1: '进厂',
2: '出厂'
},
timeOptions: ['日', '月', '年'],
apiObj: this.$API.enp.vehicle_access,
params: {},
}
},
methods: {
updateCount(res, tableData) {
this.count = res.count
},
handleQuery() {
if (this.timeRange) {
this.query.access_time__gte = this.timeRange[0]
this.query.access_time__lte = this.timeRange[1]
} else {
this.query.access_time__gte = null
this.query.access_time__lte = null
}
this.$refs.table.queryData(this.query);
},
timeHandleQuery() { },
carHandleQuery() { },
backtoMap() {
this.$emit('close')
},
}
}
</script>

View File

@ -114,10 +114,12 @@
command="transport"
>厂外运输</el-dropdown-item
>
<!--
<el-dropdown-item
command="innerClean"
>厂内清洁</el-dropdown-item
>
-->
</el-dropdown-menu>
</template>
</el-dropdown>
@ -161,9 +163,12 @@
</span>
<template #dropdown>
<el-dropdown-menu class="enpMenu">
<el-dropdown-item command="eqments"
>设备清单</el-dropdown-item
>
<el-dropdown-item command="eqments">
设备清单
</el-dropdown-item>
<el-dropdown-item command="carlist">
车辆清单
</el-dropdown-item>
<el-dropdown-item
command="alarmrecord"
>报警记录
@ -179,8 +184,14 @@
</el-dropdown>
</div>
</div>
<div class="wraning_icon"></div>
<div class="wraning_icon">
</div>
<div class="user_icon" @click="backSystem"></div>
<div class="dark_config">
<el-button :icon="config.dark ? 'el-icon-sunny' : 'el-icon-moon'" circle type="info"
@click="configDark" size="small"></el-button>
</div>
</div>
</div>
</el-header>
@ -460,6 +471,10 @@
v-else-if="activeDrawerName == 'eqments'"
@close="closeDialog"
></eqments>
<carlist
v-else-if="activeDrawerName == 'carlist'"
@close="closeDialog"
></carlist>
<alarmrecord
v-else-if="activeDrawerName == 'alarmrecord'"
@close="closeDialog"
@ -496,6 +511,7 @@ import envirqualmonitor from "./enpComponents/envirqualmonitor.vue";
import envirmonitor from "./enpComponents/envirmonitor.vue";
import pollutecalendar from "./enpComponents/pollutecalendar.vue";
import eqments from "./enpComponents/eqments.vue"; //
import carlist from "./enpComponents/carlist.vue"; //
import alarmrecord from "./enpComponents/alarmrecord.vue";
import pollutant2 from "./enpComponents/pollutant2.vue";
import carwash from "./enpComponents/smartg_carwash.vue";
@ -518,6 +534,7 @@ export default {
envirmonitor,
pollutecalendar,
eqments,
carlist,
alarmrecord,
pollutant2,
carwash,
@ -635,6 +652,17 @@ export default {
intervalinfo: null, //
};
},
watch: {
'config.dark'(val) {
if (val) {
document.documentElement.classList.add("dark")
this.$TOOL.data.set("APP_DARK", val)
} else {
document.documentElement.classList.remove("dark")
this.$TOOL.data.remove("APP_DARK")
}
}
},
created() {
document.documentElement.classList.add("dark");
this.$TOOL.data.set("APP_DARK", true);
@ -1150,6 +1178,12 @@ header {
background-size: cover;
background-image: url("/public/img/enp_blue/user_enp.png");
}
.dark_config {
width: 2.3vh;
height: 2.3vh;
margin-top: 0.9vh;
margin-left: 2vh;
}
.model {
top: 8%;

View File

@ -1301,7 +1301,7 @@ export default {
"light",
new BABYLON.Vector3(1, 1, 0)
);
light.intensity = 3;
light.intensity = 1.5;
// GUI
const advancedTexture =
BABYLON_GUI.AdvancedDynamicTexture.CreateFullscreenUI(

View File

@ -103,6 +103,10 @@ export default {
name: [{ required: true, message: "请输入类型名称" }],
type: [{ required: true, message: "请请选择设备类型" }],
},
type_gx:[
{ text: '生产设备', key: 10 },
{ text: '计量设备', key: 20 },
],
visible: false,
isSaveing: false,
};

View File

@ -75,7 +75,7 @@
</el-table-column>
<el-table-column label="操作" fixed="right" align="left" width="180">
<template #default="scope">
<el-button link type="primary" @click="table_record(scope.row)" v-auth="'echeckrecord.create'">
<el-button link type="primary" @click="table_record(scope.row)" v-auth="'einspect.create'">
巡检
</el-button>
<el-button link type="warning" @click="table_edit(scope.row)" v-auth="'equipment.update'">
@ -91,13 +91,13 @@
</scTable>
</el-main>
</el-container>
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess"
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess" :eqtype="10"
@closed="dialog.save = false"></save-dialog>
<check-dialog v-if="dialog.check" ref="checkDialog" :eqms="selectiones" @success="handleCheckSuccess"
@closed="dialog.save = false"></check-dialog>
<el-drawer title="巡检记录" v-model="visibleRecord" :size="1000" destroy-on-close @closed="visibleRecord = false">
<el-container v-loading="loading">
<el-button type="primary" icon="el-icon-plus" @click="record_create" v-auth="'equipment'"
<el-button type="primary" icon="el-icon-plus" @click="record_create" v-auth="'einspect.create'"
style="position: absolute;z-index: 10;left: 110px;top: 16px;">新增</el-button>
<el-button type="primary" icon="el-icon-download" @click="exportExcel"
style="position: absolute;z-index: 10;left:200px;top: 16px;">导出</el-button>
@ -117,7 +117,7 @@
</el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="160px">
<template #default="scope">
<el-link type="danger" @click="record_del(scope.row)" v-auth="'equipment.delete'">
<el-link type="danger" @click="record_del(scope.row)" v-auth="'einspect.delete'">
删除
</el-link>
</template>
@ -310,6 +310,17 @@ export default {
this.$refs.saveDialog.open("show", 10).setData(row);
});
},
//
record_del(row) {
let that = this;
that.$API.em.einspect.delete.req(row.id).then((res) => {
that.$message.success("删除成功");
that.$refs.drawer_table.refresh();
that.$refs.table.refresh();
}).catch((err) => {
return err;
});
},
table_record(row) {
this.item = row;
this.form.equipment = row.id;
@ -325,26 +336,29 @@ export default {
},
//
submit() {
this.$refs.dialogForm.validate(async (valid) => {
let that = this;
that.$refs.dialogForm.validate(async (valid) => {
if (valid) {
this.isSaveing = true;
this.$API.em.einspect.create.req(this.form).then(res => {
this.visible = false;
this.isSaveing = false;
this.$message.success("操作成功");
this.$refs.drawer_table.refresh();
that.isSaveing = true;
that.$API.em.einspect.create.req(that.form).then(res => {
that.visible = false;
that.isSaveing = false;
that.$message.success("操作成功");
that.$refs.drawer_table.refresh();
}).catch(() => {
this.isSaveing = false;
that.isSaveing = false;
})
}
});
},
//
async table_del(row) {
this.$API.em.equipment.delete
let that = this;
that.$API.em.equipment.delete
.req(row.id)
.then((res) => {
this.$message.success("删除成功");
that.$message.success("删除成功");
that.$refs.table.refresh();
return res;
})
.catch((err) => {
@ -354,11 +368,7 @@ export default {
//
handleSaveSuccess(data, mode) {
if (mode == "add") {
this.$refs.table.refresh();
} else if (mode == "edit") {
this.$refs.table.refresh();
}
this.$refs.table.refresh();
},
handleCheckSuccess() { },
handleQuery() {

View File

@ -199,6 +199,12 @@ import { genTree } from "@/utils/verificate";
import { iMEnum } from "@/utils/enum";
export default {
emits: ["success", "closed"],
props:{
eqtype:{
type:String,
default: ''
},
},
data() {
return {
iMEnum,
@ -211,7 +217,7 @@ export default {
show: "查看",
},
form: {
type: 10
type: 10,
},
rules: {
name: [{ required: true, message: "请输入", trigger: "blur" }],
@ -257,11 +263,13 @@ export default {
this.getGroup();
this.getBaseInfo();
this.getCateOptions();
this.form.type = this.eqtype;
},
methods: {
getCateOptions() {
this.$API.em.ecate.list.req({page:0}).then(res => {
this.cateOptions = res
let that = this;
that.$API.em.ecate.list.req({page:0,type:that.eqtype}).then(res => {
that.cateOptions = res;
})
},
getBaseInfo() {

View File

@ -91,7 +91,7 @@
</scTable>
</el-main>
</el-container>
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess"
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess" :eqtype='40'
@closed="dialog.save = false"></save-dialog>
<check-dialog v-if="dialog.check" ref="checkDialog" :eqms="selectiones" @success="handleCheckSuccess"
@closed="dialog.save = false"></check-dialog>

View File

@ -91,7 +91,7 @@
</scTable>
</el-main>
</el-container>
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess"
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess" :eqtype="50"
@closed="dialog.save = false"></save-dialog>
<check-dialog v-if="dialog.check" ref="checkDialog" :eqms="selectiones" @success="handleCheckSuccess"
@closed="dialog.save = false"></check-dialog>

View File

@ -60,7 +60,7 @@
<el-table-column label="操作" fixed="right" align="center" width="170px">
<template #default="scope">
<el-button link type="primary" v-if="scope.row.cycle !== null" @click="table_record(scope.row)"
v-auth="'einspect.create'">
v-auth="'echeckrecord.create'">
检定记录
</el-button>
<el-button link type="primary" @click="table_edit(scope.row)" v-auth="'equipment.update'">
@ -109,7 +109,7 @@
</el-dialog>
<el-drawer title="检定记录" v-model="visibleRecord" :size="1000" destroy-on-close @closed="visibleRecord = false">
<el-container v-loading="loading">
<el-button type="primary" icon="el-icon-plus" @click="record_create" v-auth="'equipment'"
<el-button type="primary" icon="el-icon-plus" @click="record_create" v-auth="'echeckrecord.create'"
style="position: absolute;z-index: 10;left: 110px;top: 16px;"></el-button>
<el-main style="padding: 0 20px 20px 20px">
<scTable ref="drawer_table" :apiObj="apiObj2" row-key="id" stripe :params="query2">
@ -127,7 +127,7 @@
</el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="160px">
<template #default="scope">
<el-link type="danger" @click="record_del(scope.row)" v-auth="'equipment.delete'">
<el-link type="danger" @click="record_del(scope.row)" v-auth="'echeckrecord.delete'">
删除
</el-link>
</template>
@ -138,7 +138,7 @@
</el-drawer>
</el-main>
</el-container>
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess"
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess" :eqtype="20"
@closed="dialog.save = false"></save-dialog>
</template>
<script>
@ -236,27 +236,29 @@ export default {
},
//
submit() {
this.$refs.dialogForm.validate(async (valid) => {
let that = this;
that.$refs.dialogForm.validate(async (valid) => {
if (valid) {
this.isSaveing = true;
this.$API.em.echeckrecord.create.req(this.form).then(res => {
this.visible = false;
this.isSaveing = false;
this.$message.success("操作成功");
this.$refs.drawer_table.refresh();
this.$refs.table.refresh();
that.isSaveing = true;
that.$API.em.echeckrecord.create.req(that.form).then(res => {
that.visible = false;
that.isSaveing = false;
that.$message.success("操作成功");
that.$refs.drawer_table.refresh();
that.$refs.table.refresh();
}).catch(() => {
this.isSaveing = false;
that.isSaveing = false;
})
}
});
},
//
record_del(row) {
let that = this;
this.$API.em.echeckrecord.delete.req(row.id).then((res) => {
this.$message.success("删除成功");
this.$refs.drawer_table.refresh();
this.$refs.table.refresh();
that.$message.success("删除成功");
that.$refs.drawer_table.refresh();
that.$refs.table.refresh();
}).catch((err) => {
return err;
});

View File

@ -92,7 +92,7 @@
</scTable>
</el-main>
</el-container>
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess"
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess" :eqtype="30"
@closed="dialog.save = false"></save-dialog>
<check-dialog v-if="dialog.check" ref="checkDialog" :eqms="selectiones" @success="handleCheckSuccess"
@closed="dialog.save = false"></check-dialog>

View File

@ -704,6 +704,6 @@ export default {
.infotitle {
font-weight: normal;
color: #333333;
color: #dddddd;
}
</style>

View File

@ -190,7 +190,7 @@ export default {
},
data() {
return {
materialTemplate: "/media/template/material.xlsx",
materialTemplate: " /media/default/template/material.xlsx",
dialog: {
save: false,
},

View File

@ -95,7 +95,7 @@
hidePagination
hideDo
stripe
style="height: 680px"
style="height: 500px"
>
<el-table-column label="排序" prop="sort" width="50">
</el-table-column>
@ -244,6 +244,7 @@ export default {
let form = {};
form.name = that.form.name;
form.material = that.form.material;
console.log("that.form",that.form)
if (that.form.id) {
that.$API.mtm.routepack.update
.req(that.form.id, that.form)
@ -258,7 +259,9 @@ export default {
} else {
that.$API.mtm.routepack.create.req(form).then((res) => {
this.active = 1;
that.form.id = res.id;
that.routepack = res.id;
console.log("that.form",that.form)
});
}
},

View File

@ -169,7 +169,9 @@ export default {
return this;
},
table_edit(row) {
this.form = Object.assign(row, this.form);
this.form = {};
let item = row;
this.form = Object.assign(item, this.form);
this.dialogVisible = true;
},
updateMtaskSubmit() {

166
src/views/qm/process2.vue Normal file
View File

@ -0,0 +1,166 @@
<template>
<el-container>
<el-header>
<div class="left-panel"></div>
<div class="right-panel">
<el-select
v-model="query.mgroup"
clearable
style="width: 150px"
>
<el-option
v-for="item in mgroupOption"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
<el-date-picker
v-model="query.handle_date"
type="date"
placeholder="选择日期"
value-format="YYYY-MM-DD"
style="width: 150px"
/>
<el-input
v-model="query.search"
placeholder="批次号"
clearable
style="width: 150px"
></el-input>
<el-button type="primary" @click="materialsChoses()"
>选择物料</el-button
>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
>查询</el-button
>
</div>
</el-header>
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="apiObj"
row-key="id"
:params = "params"
stripe
:query="query"
>
<!-- <el-table-column type="index" width="50" /> -->
<el-table-column
label="物料"
prop="material_name"
show-overflow-tooltip
min-width="120"
>
</el-table-column>
<el-table-column label="检验数" prop="count">
</el-table-column>
<el-table-column label="抽检数" prop="count_sampling">
</el-table-column>
<el-table-column label="合格数" prop="count_ok">
</el-table-column>
<el-table-column label="不合格数" prop="count_notok">
</el-table-column>
<el-table-column label="不合格原因及数量" align="center">
<el-table-column label="厚度" prop="count_n_hd">
<template #default="scope">{{scope.row.count_notok_json.count_n_hd}}</template>
</el-table-column>
<el-table-column label="气泡" prop="count_n_qp">
<template #default="scope">{{scope.row.count_notok_json.count_n_qp}}</template>
</el-table-column>
<el-table-column label="水纹" prop="count_n_swen">
<template #default="scope">{{scope.row.count_notok_json.count_n_swen}}</template>
</el-table-column>
<el-table-column label="崩边" prop="count_n_bb">
<template #default="scope">{{scope.row.count_notok_json.count_n_bb}}</template>
</el-table-column>
<el-table-column label="划伤" prop="count_n_hs">
<template #default="scope">{{scope.row.count_notok_json.count_n_hs}}</template>
</el-table-column>
<el-table-column label="麻点" prop="count_n_md">
<template #default="scope">{{scope.row.count_notok_json.count_n_md}}</template>
</el-table-column>
<el-table-column label="线痕" prop="count_n_xh">
<template #default="scope">{{scope.row.count_notok_json.count_n_xh}}</template>
</el-table-column>
<el-table-column label="产品外径" prop="count_n_wj">
<template #default="scope">{{scope.row.count_notok_json.count_n_wj}}</template>
</el-table-column>
<el-table-column label="产品圆度" prop="count_n_yd">
<template #default="scope">{{scope.row.count_notok_json.count_n_yd}}</template>
</el-table-column>
<el-table-column label="产品同心度" width="90">
<template #default="scope">{{scope.row.count_notok_json.count_n_txd}}</template>
</el-table-column>
</el-table-column>
<el-table-column label="抽检时间" prop="submit_time" width="150">
</el-table-column>
</scTable>
</el-main>
<el-dialog title="选择物料" v-model="materialsVisible" width="90%">
<materials
style="height: 500px"
ref="materialsChose"
@choseChange="choseChange"
></materials>
</el-dialog>
</el-container>
</template>
<script>
import materials from "./../mtm/materials.vue";
export default {
components: {
materials,
},
name: "rparty",
data() {
return {
params:{
type2:10
},
apiObj: this.$API.qm.ftestwork.list,
query: {
search: "",
material: "",
mgroup: "",
handle_date: "",
},
selection: [],
state_: {
10: "",
20: "",
},
mgroupOption: [],
materialsVisible: false,
};
},
mounted() {
this.getMgroup();
},
methods: {
materialsChoses() {
this.materialsVisible = true;
},
choseChange(data) {
this.query.material = data;
this.$refs.table.queryData(this.query);
this.materialsVisible = false;
},
getMgroup() {
this.$API.mtm.mgroup.list.req({ page: 0 }).then((res) => {
this.mgroupOption = res;
});
},
handleQuery() {
this.$refs.table.queryData(this.query);
},
resetQuery() {
this.query = {};
},
},
};
</script>

View File

@ -88,9 +88,27 @@
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="检验人" prop="test_user">
<el-select
v-model="form.test_user"
placeholder="检验人"
clearable
filterable
style="width: 100%"
>
<el-option
v-for="item in userList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-divider style="margin-top:0"></el-divider>
<el-row v-if="mode=='sizeAdd'||mode=='sizeEdit'">
<el-row v-if="mode=='sizeAdd'||mode=='sizeEdit'||mode=='sizeShow'">
<el-col :md="12" :sm="24">
<el-form-item label="黑圈内径">
<el-input-number
@ -187,8 +205,44 @@
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="准合格">
<el-input-number
controls-position="right"
v-model="count_notok_json.count_n_zhg"
style="width: 100%"
precision="0"
:disabled="mode=='sizeShow'||mode=='facadeShow'"
@change="handleCountChange"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="圆准">
<el-input-number
controls-position="right"
v-model="count_notok_json.count_n_yz"
style="width: 100%"
precision="0"
:disabled="mode=='sizeShow'||mode=='facadeShow'"
@change="handleCountChange"
></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row v-else>
<el-col :md="12" :sm="24">
<el-form-item label="脏">
<el-input-number
controls-position="right"
v-model="count_notok_json.count_n_z"
style="width: 100%"
precision="0"
:disabled="mode=='sizeShow'||mode=='facadeShow'"
@change="handleCountChange"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="气泡">
<el-input-number
@ -336,6 +390,7 @@ export default {
},
loading: false,
form: {
type:'prod',
type2:20,
test_date: "",
batch: "",
@ -354,7 +409,10 @@ export default {
count_n_yd: 0,
count_n_txd: 0,
count_n_hd: 0,
count_n_zhg: 0,
count_n_yz: 0,
//
count_n_z:0,
count_n_qp: 0,
count_n_swen: 0,
count_n_bb: 0,
@ -386,12 +444,13 @@ export default {
visible: false,
isSaveing: false,
options: [],
userList:[],
selectionFilters: [],
setFiltersVisible: false,
};
},
mounted() {
this.getUsers();
},
methods: {
//
@ -401,6 +460,15 @@ export default {
this.getMaterialBatch();
return this;
},
getUsers(){
let that = this;
let userList = [];
that.$API.system.user.list
.req({ page: 0, posts__code__contains: "check" })
.then((res) => {
that.userList = res;
});
},
handleCheckChange(){
this.form.count_ok = this.form.count-this.form.count_notok;
},
@ -433,7 +501,10 @@ export default {
this.count_notok_json.count_n_yd+
this.count_notok_json.count_n_txd+
this.count_notok_json.count_n_hd+
this.count_notok_json.count_n_zhg+
this.count_notok_json.count_n_yz+
this.count_notok_json.count_n_qp+
this.count_notok_json.count_n_z+
this.count_notok_json.count_n_swen+
this.count_notok_json.count_n_zb+
this.count_notok_json.count_n_hs+
@ -511,7 +582,6 @@ export default {
setData(data) {
Object.assign(this.form, data);
this.formCount = this.form.count;
// this.form.test_group = this.form.split(",");
},
//
setFilters(filters) {

View File

@ -13,7 +13,7 @@
<div class="el-form-item-msg">必须提供当前登录用户密码才能进行更改</div>
</el-form-item>
<el-form-item label="新密码" prop="new_password1">
<el-input v-model="formData.new_password1" placeholder="请输入包含英文、数字、特殊符号( @#$%^&.+=! 的8位以上密码" clearable show-password
<el-input v-model="formData.new_password1" placeholder="请输入包含英文、数字、特殊符号( @#$%^&+=! 的8位以上密码" clearable show-password
:style="{width: '100%'}"></el-input>
</el-form-item>
<el-form-item label="确认新密码" prop="new_password2">
@ -56,7 +56,7 @@ export default {
if (reg1.test(value)) {
callback();
}else{
callback(new Error('请输入包含英文、数字、特殊符号( @#$%^&.+=! 的8位以上密码'));
callback(new Error('请输入包含英文、数字、特殊符号( @#$%^&+=! 的8位以上密码'));
}
}}
],

View File

@ -732,7 +732,7 @@ export default {
this.$API.mtm.routepack.item.req(this.projectId).then((res) => {
console.log("routepackitem", res);
this.$API.mtm.route.list
.req({ page: 0, material: res.material })
.req({ page: 0, material: res.material,routepack:res.id})
.then((res) => {
that.routepackes = res;
});

View File

@ -0,0 +1,62 @@
<template>
<el-container>
<el-header>
<el-segmented
v-model="values"
:options="options"
size="default"
></el-segmented>
</el-header>
<el-main id="elMain" class="nopadding">
<!-- 日志 -->
<mlogs
v-if="values == '日志'"
:mgroupName="mgroupName"
style="height: 60%"
></mlogs>
<mtask
v-if="values == '日志'"
:mgroupName="mgroupName"
style="height: 40%"
></mtask>
<!-- 交接记录 -->
<handover
v-else-if="values == '交接记录'"
:mgroupName="mgroupName"
></handover>
<!-- 库存 -->
<inm v-else :mgroupName="mgroupName"></inm>
</el-main>
</el-container>
</template>
<script>
import inm from "./inm.vue";
import mlogs from "./mlogs.vue";
import mtask from "./mtask.vue";
import handover from "./handover.vue";
export default {
components: { inm, mlogs, mtask, handover },
data() {
return {
tableHieght: 200,
options: ["日志", "交接记录", "库存"],
values: "日志",
mgroupName: "白片抛",
mgroupId: "",
};
},
created() {},
mounted() {
let that = this;
let height = document.getElementById("elMain").clintHeight / 2;
that.tableHieght = height;
},
methods: {
handleChange(value) {
this.value = value;
console.log("Selected value:", value);
},
},
};
</script>

View File

@ -95,6 +95,24 @@
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="检验人" prop="test_user">
<el-select
v-model="form.test_user"
placeholder="检验人"
clearable
filterable
style="width: 100%"
>
<el-option
v-for="item in userList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-divider style="margin-top:0"></el-divider>
<el-row>
@ -250,6 +268,7 @@ export default {
modeTitle: '',
loading: false,
form: {
type:'process',
type2:10,
test_date: "",
batch: "",
@ -294,6 +313,7 @@ export default {
visible: false,
isSaveing: false,
options: [],
userList : [],
selectionFilters: [],
setFiltersVisible: false,
};
@ -303,6 +323,8 @@ export default {
this.form.batch = this.itemObj.batch;
this.form.wm = this.itemObj.id;
this.form.count = this.itemObj.count;
this.deptID = this.$TOOL.data.get('gx_deptID');
this.getUsers();
},
methods: {
//
@ -310,8 +332,25 @@ export default {
this.mode = mode;
this.modeTitle = mode+'抽检';
this.visible = true;
return this;
},
getUsers(){
let that = this;
let userList = [];
that.$API.system.user.list
.req({ page: 0, posts__code__contains: "check" })
.then((res) => {
userList = res;
that.$API.system.user.list.req({ depts: that.deptID, page: 0 })
.then((res2) => {
res2.forEach((item) => {
userList.push(item);
});
that.userList = userList ;
});
});
},
handleCheckChange(){
this.form.count_ok = this.form.count-this.form.count_notok;
},

View File

@ -0,0 +1,62 @@
<template>
<el-container>
<el-header>
<el-segmented
v-model="values"
:options="options"
size="default"
></el-segmented>
</el-header>
<el-main id="elMain" class="nopadding">
<!-- 日志 -->
<mlogs
v-if="values == '日志'"
:mgroupName="mgroupName"
style="height: 60%"
></mlogs>
<mtask
v-if="values == '日志'"
:mgroupName="mgroupName"
style="height: 40%"
></mtask>
<!-- 交接记录 -->
<handover
v-else-if="values == '交接记录'"
:mgroupName="mgroupName"
></handover>
<!-- 库存 -->
<inm v-else :mgroupName="mgroupName"></inm>
</el-main>
</el-container>
</template>
<script>
import inm from "./inm.vue";
import mlogs from "./mlogs.vue";
import mtask from "./mtask.vue";
import handover from "./handover.vue";
export default {
components: { inm, mlogs, mtask, handover },
data() {
return {
tableHieght: 200,
options: ["日志", "交接记录", "库存"],
values: "日志",
mgroupName: "成品抛",
mgroupId: "",
};
},
created() {},
mounted() {
let that = this;
let height = document.getElementById("elMain").clintHeight / 2;
that.tableHieght = height;
},
methods: {
handleChange(value) {
this.value = value;
console.log("Selected value:", value);
},
},
};
</script>

View File

@ -248,23 +248,22 @@ export default {
},
mounted() {
let that = this;
if(that.mgroupName=="size"){
// that.params.type=30;
if(that.mgroupName=="size"){//
that.params.material__process__name="一次超洗";
that.apiObj = that.$API.wpm.handover.list;
}else if(that.mgroupName=="facade"){
// that.params.type=30;
}else if(that.mgroupName=="facade"){//
that.params.material__process__name="二次超洗";
that.apiObj = that.$API.wpm.handover.list;
}else{
}else{//
that.printer_name = localStorage.getItem("printer_name");
that.$API.mtm.mgroup.list
.req({ page: 0, search: that.mgroupName })
.then((res) => {
if (res.length != 1) {
if (res.length < 1) {
that.$message.error("获取工段错误");
return;
}
that.$TOOL.data.set('gx_deptID',res[0].belong_dept)
that.mgroupId = res[0].id;
that.processId = res[0].process;
that.processCate = res[0].process_cate;

View File

@ -75,6 +75,7 @@
v-model="form.send_user"
placeholder="交送人"
clearable
filterable
style="width: 100%"
>
<el-option
@ -128,6 +129,7 @@
v-model="form.recive_user"
placeholder="接收人"
clearable
filterable
style="width: 100%"
>
<el-option
@ -236,6 +238,7 @@ export default {
},
],
},
deptID:'',
userList: [],
userList2: [],
deptOptions:[],
@ -247,19 +250,30 @@ export default {
};
},
mounted() {
this.form.type = this.type;
let materialObj = this.$TOOL.data.get("MATERIAL_OBJECT");
this.materialObj = materialObj;
let that = this;
that.form.type = that.type;
let materialObj = that.$TOOL.data.get("MATERIAL_OBJECT");
that.materialObj = materialObj;
let date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
this.form.handle_date = year + "-" + month + "-" + day;
this.form.send_mgroup = this.mgroupId;
this.getMaterial();
this.getUserList();
this.getDeptOptions();
this.getMgroupOptions();
that.form.handle_date = year + "-" + month + "-" + day;
that.form.send_mgroup = that.mgroupId;
console.log('mgroupName',that.mgroupName)
if(that.mgroupName=="size"||that.mgroupName=="facade"){//
that.$API.system.user.list
.req({ page: 0, posts__code__contains: "check" })
.then((res) => {
that.userList = res;
});
}else{
that.deptID = that.$TOOL.data.get('gx_deptID');
that.getUserList();
}
that.getMaterial();
that.getDeptOptions();
that.getMgroupOptions();
},
methods: {
//
@ -273,7 +287,7 @@ export default {
//
getMgroupOptions() {
this.$API.mtm.mgroup.list
.req({ page: 0, type__in: "dept" })
.req({ page: 0})
.then((res) => {
this.mgroupOptions = res;
});
@ -284,20 +298,23 @@ export default {
var req = {
mgroupx: that.mgroupId,
page: 0,
notok_sign__isnull : 1,
count_xtest__isnull:1
};
if(that.mgroupName=="size"){
req.material__process__name="一次超洗";
}else if(that.mgroupName=="facade"){
req.material__process__name="二次超洗";
}else{
if (this.type == 10) {
req.notok_sign__isnull = 1;
} else if (this.type == 20) {
req.notok_sign__isnull = 0;}
else if (this.type == 30) {
req.notok_sign__isnull = 1;
}
}
// else{
// if (this.type == 10) {
// req.notok_sign__isnull = 1;
// } else if (this.type == 20) {
// req.notok_sign__isnull = 0;
// }else if (this.type == 30) {
// req.notok_sign__isnull = 1;
// }
// }
this.$API.wpm.wmaterial.list
.req(req)
@ -309,7 +326,7 @@ export default {
getUserList() {
let that = this;
this.$API.system.user.list
.req({ mgroup: that.mgroupId, page: 0 })
.req({ depts: that.deptID, page: 0 })
.then((res) => {
that.userList = res;
});
@ -317,11 +334,17 @@ export default {
//
getUserList2() {
let that = this;
this.$API.system.user.list
.req({ mgroup: that.form.recive_mgroup, page: 0 })
.then((res) => {
that.userList2 = res;
});
let deptID = '';
this.mgroupOptions.forEach(item => {
if(item.id==that.form.recive_mgroup){
deptID = item.belong_dept;
this.$API.system.user.list
.req({ depts: deptID, page: 0 })
.then((res) => {
that.userList2 = res;
});
}
});
},
//
getUserList3() {
@ -383,8 +406,11 @@ export default {
//
setData(data) {
Object.assign(this.form, data);
this.getUserList2();
that.form.recive_dept();
if(data.type==30){
this.getUserList3();
}else{
this.getUserList2();
}
},
//
setFilters(filters) {

View File

@ -1,15 +1,15 @@
<template>
<el-container>
<el-header>
<div class="left-panel" v-if="mgroupName!=='size'&&mgroupName!=='facade'">
<div class="left-panel">
<el-button type="primary" @click="tomio" v-auth="'mio.do'"
v-if="mgroupName!=='size'&&mgroupName!=='facade'"
>领料</el-button
>
<el-button type="primary" @click="tomio" v-auth="'mio.do'"
>入库</el-button
>
</div>
<div class="left-panel" v-else></div>
<div class="right-panel">
<!-- <el-button type="primary" @click="materialsChoses('wm')"
>选择物料</el-button
@ -36,11 +36,18 @@
:params="params"
:query="query"
>
<el-table-column
label="#"
type="index"
width="50"
></el-table-column>
<el-table-column
label="状态"
prop="state"
width="100"
><template #default="scope"
><el-tag
:type="wmState[scope.row.state]?.type"
>{{
wmState[scope.row.state]?.text
}}</el-tag
>
</template></el-table-column>
<el-table-column
label="物料名称"
prop="material_name"
@ -71,7 +78,7 @@
prop="count"
min-width="80"
></el-table-column>
<el-table-column
<!-- <el-table-column
v-if="mgroupName=='size'||mgroupName=='facade'"
label="检验状态"
>
@ -79,7 +86,7 @@
<el-tag type="success" v-if="scope.row.count_xtest == null">已检验</el-tag>
<el-tag type="primary" v-else>未检验 </el-tag>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column
label="不合格标记"
prop="notok_sign_name"
@ -130,6 +137,7 @@
</el-container>
</template>
<script>
import { wmState } from "@/utils/enum.js";
import materials from "./../mtm/materials.vue";
import checkDialog from "./check_form.vue";
export default {
@ -146,6 +154,7 @@ export default {
name: "wmaterial",
data() {
return {
wmState,
apiObj: null,
params: {
mgroupx: "",
@ -177,11 +186,12 @@ export default {
that.$API.mtm.mgroup.list
.req({ page: 0, search: that.mgroupName })
.then((res) => {
if (res.length != 1) {
if (res.length < 1) {
that.$message.error("获取工段错误");
return;
}
that.mgroupId = res[0].id;
that.$TOOL.data.set('gx_deptID',res[0].belong_dept)
that.params.mgroupx = res[0].id;
that.apiObj = that.$API.wpm.wmaterial.list;
});

View File

@ -42,7 +42,7 @@ export default {
tableHieght: 200,
options: ["日志", "交接记录", "库存"],
values: "日志",
mgroupName: "减薄",
mgroupName: "减薄A",
mgroupId: "",
};
},

View File

@ -0,0 +1,62 @@
<template>
<el-container>
<el-header>
<el-segmented
v-model="values"
:options="options"
size="default"
></el-segmented>
</el-header>
<el-main id="elMain" class="nopadding">
<!-- 日志 -->
<mlogs
v-if="values == '日志'"
:mgroupName="mgroupName"
style="height: 60%"
></mlogs>
<mtask
v-if="values == '日志'"
:mgroupName="mgroupName"
style="height: 40%"
></mtask>
<!-- 交接记录 -->
<handover
v-else-if="values == '交接记录'"
:mgroupName="mgroupName"
></handover>
<!-- 库存 -->
<inm v-else :mgroupName="mgroupName"></inm>
</el-main>
</el-container>
</template>
<script>
import inm from "./inm.vue";
import mlogs from "./mlogs.vue";
import mtask from "./mtask.vue";
import handover from "./handover.vue";
export default {
components: { inm, mlogs, mtask, handover },
data() {
return {
tableHieght: 200,
options: ["日志", "交接记录", "库存"],
values: "日志",
mgroupName: "减薄B",
mgroupId: "",
};
},
created() {},
mounted() {
let that = this;
let height = document.getElementById("elMain").clintHeight / 2;
that.tableHieght = height;
},
methods: {
handleChange(value) {
this.value = value;
console.log("Selected value:", value);
},
},
};
</script>

View File

@ -65,6 +65,7 @@
v-model="form.route"
placeholder="工艺路线"
clearable
filterable
style="width: 100%"
:disabled="mode == 'edit'"
>
@ -89,6 +90,7 @@
v-model="form.equipment"
placeholder="生产设备"
clearable
filterable
:disabled="mode == 'edit'"
style="width: 100%"
>
@ -97,7 +99,10 @@
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
>
<span style="float:left">{{item.name}}</span>
<span style="float:right">{{item.number}}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
@ -309,7 +314,7 @@ export default {
},
getEquipment() {
this.$API.em.equipment.list
.req({ page: 0, type: 10 })
.req({ page: 0, type: 10,belong_dept:this.dept })
.then((res) => {
this.options = res;
});

View File

@ -133,6 +133,28 @@
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="破损">
<el-input-number
v-model="form.count_n_ps"
:min="0"
class="width-100"
controls-position="right"
@change="countChange"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="其他">
<el-input-number
v-model="form.count_n_qt"
:min="0"
class="width-100"
controls-position="right"
@change="countChange"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-main>
@ -153,7 +175,21 @@ export default {
return {
loading: false,
//
form: {},
form: {
batch: null,
count_real: 0,
count_ok: 0,
count_notok: 0,
count_n_hs: 0,
count_n_qp: 0,
count_n_swen: 0,
count_n_bb: 0,
count_n_md: 0,
count_n_xh: 0,
count_n_ps: 0,
count_n_qt: 0,
count_n_wm: 0,
},
//
rules: {
batch: [
@ -197,6 +233,8 @@ export default {
this.form.count_n_bb +
this.form.count_n_md +
this.form.count_n_xh +
this.form.count_n_ps +
this.form.count_n_qt +
this.form.count_n_wm;
this.form.count_ok = this.form.count_real - this.form.count_notok;
},
@ -214,6 +252,8 @@ export default {
this.form.count_n_bb +
this.form.count_n_md +
this.form.count_n_xh +
this.form.count_n_ps +
this.form.count_n_qt +
this.form.count_n_wm;
let sum = this.form.count_ok + this.form.count_notok;
if (sum - this.form.count_real == 0) {

View File

@ -182,7 +182,7 @@ export default {
that.$API.mtm.mgroup.list
.req({ page: 0, search: that.mgroupName })
.then((res) => {
if (res.length != 1) {
if (res.length < 1) {
that.$message.error("获取工段错误");
return;
}

View File

@ -42,7 +42,7 @@ export default {
tableHieght: 200,
options: ["日志", "交接记录", "库存"],
values: "日志",
mgroupName: "",
mgroupName: "磨",
mgroupId: "",
};
},

View File

@ -42,7 +42,7 @@ export default {
tableHieght: 200,
options: ["日志", "交接记录", "库存"],
values: "日志",
mgroupName: "扫边",
mgroupName: "扫边A",
mgroupId: "",
};
},

View File

@ -0,0 +1,62 @@
<template>
<el-container>
<el-header>
<el-segmented
v-model="values"
:options="options"
size="default"
></el-segmented>
</el-header>
<el-main id="elMain" class="nopadding">
<!-- 日志 -->
<mlogs
v-if="values == '日志'"
:mgroupName="mgroupName"
style="height: 60%"
></mlogs>
<mtask
v-if="values == '日志'"
:mgroupName="mgroupName"
style="height: 40%"
></mtask>
<!-- 交接记录 -->
<handover
v-else-if="values == '交接记录'"
:mgroupName="mgroupName"
></handover>
<!-- 库存 -->
<inm v-else :mgroupName="mgroupName"></inm>
</el-main>
</el-container>
</template>
<script>
import inm from "./inm.vue";
import mlogs from "./mlogs.vue";
import mtask from "./mtask.vue";
import handover from "./handover.vue";
export default {
components: { inm, mlogs, mtask, handover },
data() {
return {
tableHieght: 200,
options: ["日志", "交接记录", "库存"],
values: "日志",
mgroupName: "扫边B",
mgroupId: "",
};
},
created() {},
mounted() {
let that = this;
let height = document.getElementById("elMain").clintHeight / 2;
that.tableHieght = height;
},
methods: {
handleChange(value) {
this.value = value;
console.log("Selected value:", value);
},
},
};
</script>

View File

@ -42,7 +42,7 @@ export default {
tableHieght: 200,
options: ["日志", "交接记录", "库存"],
values: "日志",
mgroupName: "烧结",
mgroupName: "退火",
mgroupId: "",
};
},

View File

@ -0,0 +1,62 @@
<template>
<el-container>
<el-header>
<el-segmented
v-model="values"
:options="options"
size="default"
></el-segmented>
</el-header>
<el-main id="elMain" class="nopadding">
<!-- 日志 -->
<mlogs
v-if="values == '日志'"
:mgroupName="mgroupName"
style="height: 60%"
></mlogs>
<mtask
v-if="values == '日志'"
:mgroupName="mgroupName"
style="height: 40%"
></mtask>
<!-- 交接记录 -->
<handover
v-else-if="values == '交接记录'"
:mgroupName="mgroupName"
></handover>
<!-- 库存 -->
<inm v-else :mgroupName="mgroupName"></inm>
</el-main>
</el-container>
</template>
<script>
import inm from "./inm.vue";
import mlogs from "./mlogs.vue";
import mtask from "./mtask.vue";
import handover from "./handover.vue";
export default {
components: { inm, mlogs, mtask, handover },
data() {
return {
tableHieght: 200,
options: ["日志", "交接记录", "库存"],
values: "日志",
mgroupName: "一次抛",
mgroupId: "",
};
},
created() {},
mounted() {
let that = this;
let height = document.getElementById("elMain").clintHeight / 2;
that.tableHieght = height;
},
methods: {
handleChange(value) {
this.value = value;
console.log("Selected value:", value);
},
},
};
</script>