Commit cecda52d authored by 李苏's avatar 李苏 💬

1021 功能调整

parent f2d1b927
......@@ -253,24 +253,6 @@ export const powerRoutes = [
name: 'ywsjlr',
path: "ywsjlr",
},
],
},
{
path: '/fmegl',
component: "Layout",
hidden: false,
alwaysShow: true,
redirect: 'fmerwgl',
meta: {
title: "FME管理",
icon: "fa-cog",
noCache: false,
link: null,
mkid: '920060000'
},
children: [
/* 基础数据 */
{
erpComponent: false,
component: 'fmegl/fmerwgl/index',
......@@ -280,7 +262,7 @@ export const powerRoutes = [
"icon": "",
"noCache": false,
"link": null,
"mkid": '920061000',
"mkid": '920050300',
},
name: 'fmerwgl',
path: "fmerwgl",
......@@ -294,7 +276,7 @@ export const powerRoutes = [
"icon": "",
"noCache": false,
"link": null,
"mkid": '920062000',
"mkid": '920050400',
},
name: 'fmeglxs',
path: "fmeglxs",
......@@ -308,59 +290,97 @@ export const powerRoutes = [
"icon": "",
"noCache": false,
"link": null,
"mkid": '920063000',
"mkid": '920050500',
},
name: 'fmesjhpcecfx',
path: "fmesjhpcecfx",
},
],
},
{
path: '/glqwpdj',
component: "Layout",
hidden: false,
alwaysShow: false,
redirect: 'fmerwgl',
meta: {
title: "隔离区物品登记",
icon: "fa-cog",
noCache: false,
link: null,
mkid: '920070000'
},
children:[]
},
{
path: '/yhlywsytst',
component: "Layout",
hidden: false,
alwaysShow: true,
redirect: 'yhlywsytst',
meta: {
title: "一回路异物溯源态势图",
icon: "fa-cog",
noCache: false,
link: null,
mkid: '920060000'
},
children: [
/* 基础数据 */
{
erpComponent: false,
component: 'yhlywsytst/yhlywsytst/index',
component: 'fmegl/glqwpdj/index',
hidden: false,
meta: {
"title": "一回路异物溯源态势图",
"title": "隔离区物品登记",
"icon": "",
"noCache": false,
"link": null,
"mkid": '920061000',
"mkid": '920050600',
},
name: 'glqwpdj',
path: "glqwpdj",
},
name: 'yhlywsytst',
path: "yhlywsytst",
}
],
},
// {
// path: '/fmegl',
// component: "Layout",
// hidden: false,
// alwaysShow: true,
// redirect: 'fmerwgl',
// meta: {
// title: "FME管理",
// icon: "fa-cog",
// noCache: false,
// link: null,
// mkid: '920060000'
// },
// children: [
// ],
// },
// {
// path: '/glqwpdj',
// component: "Layout",
// hidden: false,
// alwaysShow: false,
// redirect: 'fmerwgl',
// meta: {
// title: "隔离区物品登记",
// icon: "fa-cog",
// noCache: false,
// link: null,
// mkid: '920070000'
// },
// children:[]
// },
// {
// path: '/yhlywsytst',
// component: "Layout",
// hidden: false,
// alwaysShow: true,
// redirect: 'yhlywsytst',
// meta: {
// title: "一回路异物溯源态势图",
// icon: "fa-cog",
// noCache: false,
// link: null,
// mkid: '920060000'
// },
// children: [
// /* 基础数据 */
// {
// erpComponent: false,
// component: 'yhlywsytst/yhlywsytst/index',
// hidden: false,
// meta: {
// "title": "一回路异物溯源态势图",
// "icon": "",
// "noCache": false,
// "link": null,
// "mkid": '920061000',
// },
// name: 'yhlywsytst',
// path: "yhlywsytst",
// }
// ],
// },
{
path: '/sbjxgl',
component: "Layout",
......@@ -376,34 +396,34 @@ export const powerRoutes = [
},
children: [
/* 基础数据 */
{
erpComponent: false,
component: 'jcxxgl/gjxx/index',
hidden: false,
meta: {
"title": "工具信息",
"icon": "",
"noCache": false,
"link": null,
"mkid": '920030100',
},
name: 'gjxx',
path: "gjxx",
},
{
erpComponent: false,
component: 'jcxxgl/wlxx/index',
hidden: false,
meta: {
"title": "物料信息",
"icon": "",
"noCache": false,
"link": null,
"mkid": '920030200',
},
name: 'wlxx',
path: "wlxx",
},
// {
// erpComponent: false,
// component: 'jcxxgl/gjxx/index',
// hidden: false,
// meta: {
// "title": "工具信息",
// "icon": "",
// "noCache": false,
// "link": null,
// "mkid": '920030100',
// },
// name: 'gjxx',
// path: "gjxx",
// },
// {
// erpComponent: false,
// component: 'jcxxgl/wlxx/index',
// hidden: false,
// meta: {
// "title": "物料信息",
// "icon": "",
// "noCache": false,
// "link": null,
// "mkid": '920030200',
// },
// name: 'wlxx',
// path: "wlxx",
// },
{
erpComponent: false,
component: 'sbjxgl/sbjxxx/index',
......
<!--
* @Description:生成基础baseEdit组件,屏蔽不必要细节
* @Author: lisu lisu@gavelinfo.com
* @Date: 2024-09-19 10:47:46
* @LastEditors: lisu lisu@gavelinfo.com
* @LastEditTime: 2024-10-14 15:52:21
* @FilePath: /zghywpc-vue/src/views/jyfkgl/ywsjlr/edit.vue
-->
<template>
<!-- prop 穿透赋值 -->
<BaseEdit v-bind="$attrs" :config='editConfig'>
<template #dialog="ctx">
<!-- 嵌入默认页面额外弹框的插槽 ctx.editPage来操作默认页面 -->
</template>
<template #toolbar="ctx">
<!-- 嵌入默认页面从表上方插槽 ctx.editPage来操作默认页面 -->
<!-- <el-button @click="demo(ctx.editPage)" size='mini' type="primary">示例按钮</el-button> -->
<!-- <AuxButton :dynamic='true' :queryParams="{
sbxxTreeId:that.form.sbxxTreeId,
zt:'N'
}" :component='Qxsj' rename='选择缺陷数据' code='dynamic' @save="saveQxsj" /> -->
</template>
</BaseEdit>
</template>
<RelDialog @getForm='getForm' width="50%" :type='type' :editApp='editApp' :app='app' :buttonApp='buttonApp'>
<el-form slot="form" ref="form" :model="form" label-width="120px" :rules="rules">
<el-row :gutter="20" :app="this">
<EditColItem :required="item.required||false" :readonly="item.readonly?true:false "
v-for="(item,index) in editColItemList " :value="item.value" :span="item.span" :label="item.label"
:prop='item.prop' :key="item.prop" :type="item.type" :typeConfig='item.typeConfig' :rule="item.rule" />
</el-row>
<el-row :gutter="20">
<el-form-item label="异物图片">
<el-upload ref="upload" :headers='{
Gtoken
}' :action="`${baseurl}/ywxxgl/uywsjlr/attachment/upload`" list-type="picture-card"
:on-preview="handlePictureCardPreview" :on-success='success' :on-remove="handleRemove" :data="{
groupid:'',
folder:'uywsjlr'
}">
<i class="el-icon-plus"></i>
</el-upload>
</el-form-item>
</el-row>
<el-row v-if="showList.length!=0">
<el-form-item label="已上传附件">
<div class="demo-image">
<div style="display: inline-block;" v-for="(item,index) in showList" :key="item.id">
<div>
<el-image :preview-src-list="showList.map(item=>item.url)"
style="width: 146.22px; height: 146.22px;margin-right: 10px;" :src="item.url" fit="fill">
</el-image>
<div v-show="type=='edit'" @click='delfile(item.id,index)'
style="width: 146.22px;line-height: 15px;font-size: 13px;color: red;text-align: center;cursor: pointer;">
删除</div>
</div>
</div>
</div>
</el-form-item>
</el-row>
</el-form>
</RelDialog>
</template>
<script>
import {
autoAttachDownload
} from "common/src/api/system/dmgSystem.js";
const baseurl = process.env.VUE_APP_BASE_API
const Gtoken = localStorage.getItem('Gtoken')
import {
editMixin
} from 'common'
export default {
mixins: [editMixin],
data() {
return {
editConfig: {
/* 生成form表单 */
showList:[],
baseurl: baseurl,
Gtoken: Gtoken,
editColItemList: [{
label: '异物区域',
prop: 'ywqy',
......@@ -48,87 +76,140 @@
span: 12,
type: 'datetime',
},
{
"label": "检修事件",
"prop": "jxsj",
"span": 12,
"type": "RelSelect",
"value": "",
"typeConfig": {
"src": "ywxxgl/uywsjlr/init/ywJxsj",
"match": {
"value": "id",
"label": "name"
}
}
},
{
label: '异物产生原因',
prop: 'ywcsyy',
span: 12,
type: 'input',
},
{
label: '是否大修',
prop: 'sfdx',
span: 4,
type: 'checkbox',
value: 'Y'
},
{
label: '大修编码',
prop: 'dxdm',
span: 24,
type: 'input',
},
{
"label": "异物影响后果",
"prop": "ywyxhg",
"span": 12,
"type": "RelSelect",
"value": "",
"typeConfig": {
"src": "ywxxgl/uywsjlr/init/ywyxhg",
"match": {
"value": "id",
"label": "name"
}
}
label: '异物产生细节',
prop: 'ywcsxj',
span: 24,
type: 'input',
},
{
label: '机组损害',
prop: 'jzsh',
span: 24,
type: 'checkbox',
value: 'Y'
},
{
label: '关键路径延误时间',
prop: 'gjljywsj',
span: 12,
type: 'datetime',
},
{
label: '集体计量增加量',
prop: 'jtjlzjl',
span: 12,
type: 'input',
},
{
label: '备注',
prop: 'bz',
span: 24,
type: 'input'
},
],
/* 生成主从表,为空数组默认不展示 */
editTableTitle: [
// {
// title: "序号",
// field: "xh",
// width: 50,
// align: "center"
// },
// {
// title: "点检部位",
// field: "bw",
// width: 180,
// },
// {
// title: "点检项目",
// field: "project",
// width: 160
// },
// {
// title: "点检标准",
// field: "standard",
// width: 140
// },
],
/* 子表名,可选 同editTableTitle一起用*/
detailTable: ''
}
]
}
},
methods: {
/**
* @description:示例按钮
* @param {*} ctx操作edit实例内容
* @return {*}
* @author: lisu
*/
// demo(ctx){}
handleRemove(file, fileList) {
let attachmentList = []
fileList.forEach(item => {
if (item.status == 'success') {
attachmentList.push(item.response.data.id)
}
})
this.form.attachmentList = attachmentList
console.log(this.form.attachmentList)
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
success(res, file, fileList) {
if (res.success) {
this.$success('上传成功')
/* 成功后同步fileList数据到form表单*/
let attachmentList = []
fileList.forEach(item => {
if (item.status == 'success') {
attachmentList.push(item.response.data.id)
}
})
this.form.attachmentList = attachmentList
} else {
const delIndex = fileList.findIndex(item => item.uid === file.uid);
if (delIndex !== -1) {
fileList.splice(delIndex, 1);
this.$error(res.message || '未知错误');
}
</script>
}
},
delfile(id, index) {
this.$confirm('是否继续该操作?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(res => {
this.$post('ywxxgl/uywsjlr/attachment/delete', {
<style>
</style>
id: [id]
}).then(res => {
if (res.success) {
this.showList.splice(index, 1)
this.$success('操作成功')
}
})
})
},
getForm(data) {
this.$post('ywxxgl/uywsjlr/attachment/list', {
groupid: data.id,
}).then(res => {
res.data.records.forEach(item => {
autoAttachDownload({}, 'ywxxgl/uywsjlr', item.id).then(res => {
let blob = new Blob([res], {
type: 'application/' + item.type + ';charset=UTF-8',
});
let url = URL.createObjectURL(blob)
let uitem = {
url,
id: item.id
}
this.showList.push(uitem)
})
})
})
},
}
}
</script>
......@@ -3,7 +3,7 @@
* @Author: lisu lisu@gavelinfo.com
* @Date: 2024-09-19 10:55:27
* @LastEditors: lisu lisu@gavelinfo.com
* @LastEditTime: 2024-10-14 16:11:19
* @LastEditTime: 2024-10-21 14:01:30
* @FilePath: /zghywpc-vue/src/views/jyfkgl/ywsjlr/index.vue
-->
<template>
......@@ -44,30 +44,41 @@
field: "ywfssj",
fieldType: "ftDateTime"
},
{
title: "检修事件",
field: "jxsj",
width: 200,
"transform": {
"url": "ywxxgl/uywsjlr/init/ywJxsj",
"label": "name",
"value": "id"
}
},
{
title: "异物产生原因",
field: "ywcsyy",
width: 300
},
{
title: "异物影响后果",
field: "ywyxhg",
title: "是否大修",
field: "sfdx",
fieldType: "checkbox"
},
{
title: "大修编码",
field: "dxdm",
width: 300
},
{
title: "异物产生细节",
field: "ywcsxj",
width: 300
},
{
title: "机组损害",
field: "jzsh",
fieldType: "checkbox"
},
{
title: "关键路径延误时间",
field: "gjljywsj",
width: 200,
"transform": {
"url": "ywxxgl/uywsjlr/init/ywyxhg",
"label": "name",
"value": "id"
}
fieldType: "ftDateTime"
},
{
title: "集体计量增加量",
field: "jtjlzjl",
width: 120
},
{
title: "备注",
......@@ -91,37 +102,7 @@
span: 6,
type: 'datetime',
value: ''
},
{
"label": "检修事件",
"prop": "jxsj",
"span": 6,
"type": "RelSelect",
"value": "",
"typeConfig": {
"src": "ywxxgl/uywsjlr/init/ywJxsj",
"match": {
"value": "id",
"label": "name"
}
}
},
{
"label": "影响后果",
"prop": "ywyxhg",
"span": 6,
"type": "RelSelect",
"value": "",
"typeConfig": {
"src": "ywxxgl/uywsjlr/init/ywyxhg",
"match": {
"value": "id",
"label": "name"
}
}
},
]
}]
],
/* 默认启停用 */
......
......@@ -53,11 +53,17 @@
type: 'input',
},
{
label: '备件规格',
label: '规格',
prop: 'gg',
span: 12,
type: 'input',
},
{
label: '型号',
prop: 'xh',
span: 12,
type: 'input',
},
{
label: '备件材质',
prop: 'cz',
......
......@@ -39,51 +39,37 @@
data() {
return {
readonly: false,
editColItemList: [{
editColItemList: [
{
label: '检修工具',
prop: 'gjxxid',
span: 24,
required: true,
type: 'AuxInput',
typeConfig: {
isRequest: false,
dynamic: true,
code: true,
component: gjxx,
label: 'name',
transform: {
value: 'id',
label: 'name'
},
give:(row)=>{
this.form.code=row.code
this.form.cz=row.cz
this.form.gg=row.gg
}
}
prop: 'name',
span: 12,
type: 'input',
},
{
label: '工具编码',
readonly:true,
prop: 'code',
span: 12,
type: 'input',
},
{
label: '材质',
readonly:true,
prop: 'cz',
span: 12,
type: 'input',
},
{
label: '规格型号',
readonly:true,
prop: 'gg',
span: 12,
type: 'input',
},
{
label: '型号',
prop: 'xh',
span: 12,
type: 'input',
},
]
......
......@@ -42,46 +42,27 @@ import wlxx from '@/views/auxinput/wlxx'
editColItemList: [
{
label: '耗材名称',
prop: 'wlid',
span: 24,
required: true,
type: 'AuxInput',
typeConfig: {
isRequest: false,
dynamic: true,
code: true,
component: wlxx,
label: 'name',
transform: {
value: 'id',
label: 'name'
prop: 'name',
span: 12,
type: 'input',
},
give:(row)=>{
this.form.name=row.name
this.form.cz=row.cz
this.form.gg=row.gg
}
}
},
// {
// label: '耗材名称',
// prop: 'wlxxName',
// span: 12,
// type: 'input',
// },
{
label: '耗材规格/型号',
prop: 'gg',
label: '耗材材质',
prop: 'cz',
span: 12,
type: 'input',
},
{
label: '耗材材质',
prop: 'cz',
label: '规格',
prop: 'gg',
span: 12,
type: 'input',
},
{
label: '型号',
prop: 'xh',
}
]
......
......@@ -47,19 +47,15 @@
<el-tab-pane label="完工附件" name="4">
<!-- 上传div-->
<div style="border-bottom: 1px solid #eee;padding-bottom: 20px;">
<span style="line-height: 40px;font-size: 16px;font-weight: 700;color: #666;">附件上传</span>
<span style="line-height: 40px;font-size: 12px;font-weight: 700;color: #666;">附件上传</span>
<div class="upload padding-10">
<el-upload
ref="upload"
:headers='{
<el-upload ref="upload" :headers='{
Gtoken
}'
:data="{
}' :data="{
groupid:'',
folder:'usbjx'
}"
class="upload-demo" :action="`${baseurl}/jxgl/usbjx/attachment/upload`" :on-success='success' :on-remove="handleRemove"
:file-list="fileList">
}" class="upload-demo" :action="`${baseurl}/jxgl/usbjx/attachment/upload`"
:on-success='success' :on-remove="handleRemove" :file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
......@@ -67,8 +63,28 @@
</div>
<div v-if="type!='add'">
<span style="line-height: 40px;font-size: 16px;font-weight: 700;color: #666;">附件列表</span>
<span style="line-height: 40px;font-size: 12px;font-weight: 700;color: #666;">附件列表</span>
<div class="download padding-10">
<div class="fileList" style="font-weight: 800;background-color: #666;color: #eee;">
<div class="index">
序号
</div>
<div class="name">
文件名称
</div>
<div class="size">
文件大小
</div>
<div class="down">
</div>
<div class="del">
</div>
</div>
<div v-for="(item,index) in downList" :key="index" class="fileList">
<div class="index">
{{index+1}}
......@@ -80,11 +96,10 @@
{{item.size}}
</div>
<div class="down">
<span style="color: cornflowerblue;cursor: pointer;">下载</span>
<el-button @click="download(item)" size="mini" type="success">下载文件</el-button>
</div>
<div class="del">
<span style="color: red;cursor: pointer;">删除</span>
<el-button @click="delitem(item.id,index)" size="mini" type="danger">删除文件</el-button>
</div>
</div>
......@@ -149,11 +164,11 @@
},
data() {
return {
form:{
attachmentList:[]
form: {
attachmentList: []
},
Gtoken:Gtoken,
baseurl:baseurl,
Gtoken: Gtoken,
baseurl: baseurl,
fileList: [],
downList: [{
name: '测试1',
......@@ -185,9 +200,12 @@
width: '260'
},
{
label: '规格型号',
label: '规格',
prop: 'gg',
},
{
label: '型号',
prop: 'xh',
}
],
editTableTitle2: [{
......@@ -217,14 +235,18 @@
width: '260'
},
{
label: '耗材规格/型号',
prop: 'gg',
label: '耗材材质',
prop: 'cz',
width: '260'
},
{
label: '耗材材质',
prop: 'cz',
label: '规格',
prop: 'gg',
width: '260'
},
{
label: '型号',
prop: 'xh',
}
],
editTableData1: [],
......@@ -301,6 +323,26 @@
}
},
methods: {
download(item){
let url=`jxgl/usbjx/attachment/download/${item.id}`
this.$cDownload(url, {},item.name)
},
delitem(id,index) {
this.$confirm('是否继续操作, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$post('jxgl/usbjx/attachment/delete', {
id: [id]
}).then(res => {
if (res.success) {
this.downList.splice(index, 1)
this.$success('操作成功')
}
})
})
},
handleRemove(file, fileList) {
let attachmentList = []
fileList.forEach(item => {
......@@ -312,7 +354,7 @@
},
success(res, file, fileList) {
console.log(res,'asdasdas')
console.log(res, 'asdasdas')
if (res.success) {
this.$success('上传成功')
......@@ -405,9 +447,53 @@
if (res.success) {
this.$success('添加成功')
this.$refs.reldialog.closeAll()
this.app.refresh()
let newData = this.form
this.app.$refs.TablePager.tableData.unshift(newData)
/* 总数据++ */
this.app.$refs.TablePager.total+=1
/* 选中当前行 */
this.app.$refs.TablePager.setCurrent(newData)
}
})
}else if(this.type=='edit'){
let params = {
details: [{
id: 'U_JXGJ',
records: [...this.editTableData1] || []
},
{
id: 'U_JXWL',
records: [...this.editTableData3] || []
},
{
id: 'U_BPBJ',
records: [...this.editTableData2] || []
}
],
master: this.form
}
this.$post('jxgl/usbjx/update', params).then(res => {
if (res.success) {
this.$success('修改成功')
this.$refs.reldialog.closeAll()
let nowIndex = false
let tableData = this.app.$refs['TablePager'].tableData
tableData.forEach((data, index) => {
if (data.id == params.master.id) {
nowIndex = index
}
})
if (nowIndex !== false) {
this.app.$refs['TablePager'].tableData.splice(nowIndex, 1, params
.master)
this.app.$refs['TablePager'].setCurrent(params.master)
}
}
})
}
......@@ -462,6 +548,7 @@
width: 100%;
border-bottom: 1px solid #eee;
text-align: center;
font-size: 12px;
.index {
width: 5%;
......
......@@ -2,7 +2,7 @@
* @Description:
* @Author: lisu lisu@gavelinfo.com
* @LastEditors: lisu lisu@gavelinfo.com
* @LastEditTime: 2024-10-18 12:26:53
* @LastEditTime: 2024-10-21 15:29:58
* @FilePath: /zghywpc-vue/src/views/yhlywsytst/yhlywsytst/index.vue
-->
<template>
......@@ -16,43 +16,49 @@
<!-- 视角工具栏-->
<div class="toolButton">
<div class="flex1 text-center">
<div class="menu"><router-link to="/jyfkgl/jyfkgl">
<div class="menu">
<span style="cursor: pointer;" @click="toFullPage('jyfkgl/jyfkgl')">
经验反馈信息
</router-link></div>
</span>
</div>
</div>
<div class="flex1 text-center">
<div class="menu">
<router-link to="/sbjxgl/gjxx">
<span style="cursor: pointer;" @click="toFullPage('sbjxgl/gjxx')">
基础数据
</router-link>
</span>
</div>
</div>
<div class="flex1 text-center">
<div class="menu">
<router-link to="/system/menuManage">
<span style="cursor: pointer;" @click="toFullPage('system/menuManage')">
系统管理
</router-link>
</span>
</div>
</div>
</div>
<div class="toolButton2">
<div class="flex1 text-center">
<div class="menu"> <router-link to="/sbxxgl/sbxx">
<div class="menu"> <span style="cursor: pointer;" @click="toFullPage('sbxxgl/sbxx')">
设备信息
</router-link>
</span>
</div>
</div>
<div class="flex1 text-center">
<div class="menu">
<router-link to="/sbjxgl/sbjxxx">
<span style="cursor: pointer;" @click="toFullPage('sbjxgl/sbjxxx')">
设备检修信息
</router-link>
</span>
</div>
</div>
<div class="flex1 text-center">
<div class="menu"> <router-link to="/ywxxgl/ywxxgl">
<div class="menu">
<span style="cursor: pointer;" @click="toFullPage('ywxxgl/ywxxgl')">
异物信息
</router-link>
</span>
</div>
</div>
</div>
......@@ -681,6 +687,10 @@
}
},
methods: {
toFullPage(hash) {
const url = `${location.origin}/#/${hash}`
window.open(url, '_blank'); // 第二个参数 '_blank' 表示在新窗口或标签页中打开
},
kshZtChange(va){
if(!va){
this.sypcQueryParams.byZts=''
......
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