Browse Source

【EDI】前端暂存

web
安虹睿 5 days ago
parent
commit
84ef947e56
  1. 35
      Web/src/components/ediTtablePage/index.vue
  2. 2
      Web/src/components/importPop/index.vue
  3. 5
      Web/src/main.js
  4. 2
      Web/src/settings.js
  5. 2
      Web/src/styles/index.scss
  6. 2
      Web/src/utils/common/apiTableColumns.js
  7. 24
      Web/src/utils/common/index.js
  8. 11
      Web/src/utils/common/localStorage.js
  9. 2
      Web/src/utils/request.js
  10. 4
      Web/src/views/logisticsPlan/supplierConPo/index.vue
  11. 2
      Web/src/views/task/logisticsPlanLog/index.vue
  12. 2
      Web/src/views/task/productionQualityLog/index.vue

35
Web/src/components/ediTtablePage/index.vue

@ -1,8 +1,8 @@
<template> <template>
<div class="app-container" v-loading="state.loading"> <div class="app-container" v-loading="state.loading">
<!-- 查询头部 --> <!-- 查询头部 -->
<el-card class="search-container" v-if="!props.hideSearch"> <el-card class="search-container" v-if="!(props.hideSearch && props.hideSetColums)">
<el-form :inline="true"> <el-form :inline="true" v-if="!props.hideSearch">
<el-form-item <el-form-item
v-auth="props.apiName + state.searchBtnOptions['search'].auth" v-auth="props.apiName + state.searchBtnOptions['search'].auth"
v-for="(item,index) in props.searchOptions" v-for="(item,index) in props.searchOptions"
@ -31,6 +31,7 @@
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"
style="width:370px"
/> />
<!-- 选择框 --> <!-- 选择框 -->
<el-select <el-select
@ -69,7 +70,16 @@
v-auth="btn.sAuth || props.apiName + btn.auth" v-auth="btn.sAuth || props.apiName + btn.auth"
:type="btn.type" :type="btn.type"
@click="searchRightBtnHandle(btn)" @click="searchRightBtnHandle(btn)"
style="margin-right: 10px"
>{{btn.label}}</el-button> >{{btn.label}}</el-button>
<!-- 字段设置 -->
<setColumsPop
style="margin-left: auto;"
:localTableColumnsName="state.localTableColumnsName"
:initTableColums="state.initTableColums"
:tableColumns="getTableColumns()"
v-if="!props.hideSetColums"
></setColumsPop>
</div> </div>
</el-card> </el-card>
<!-- 头部详情 --> <!-- 头部详情 -->
@ -158,7 +168,8 @@
import { ElMessageBox, ElMessage,ElTable, ElTableColumn } from 'element-plus' import { ElMessageBox, ElMessage,ElTable, ElTableColumn } from 'element-plus'
import elTable from '@/components/elTable/index.vue' import elTable from '@/components/elTable/index.vue'
import elPager from '@/components/elPager/index.vue' import elPager from '@/components/elPager/index.vue'
import { getPageParamsForFilter } from '@/utils/common/index' import setColumsPop from '@/components/setColumsPop/index.vue'
import { getPageParamsForFilter,getLocalTableColumnsName } from '@/utils/common/index'
import { downloadByData } from '@/utils/download' import { downloadByData } from '@/utils/download'
import importPop from '@/components/importPop/index.vue' import importPop from '@/components/importPop/index.vue'
import apiEditPop from '@/components/apiEditPop/index.vue' import apiEditPop from '@/components/apiEditPop/index.vue'
@ -205,6 +216,9 @@
stage_tableData:[], stage_tableData:[],
// //
stage_indexs:[], stage_indexs:[],
//
initTableColums:[],
localTableColumnsName:null,
//tabel //tabel
tableFormRulesData:null, tableFormRulesData:null,
}) })
@ -323,11 +337,24 @@
// {prop:'releaseEdition',ruleValue:'2024121901'}, // {prop:'releaseEdition',ruleValue:'2024121901'},
] ]
}, },
//
hideSetColums:{
type: Boolean,
default: false
}
}) })
// //
function getTableColumns(){ function getTableColumns(){
return props.tableColumns || apiTableColumns[props.apiName] state.localTableColumnsName = getLocalTableColumnsName(useRoute().name)
if(props.apiType == 'detailApi'){
state.localTableColumnsName = getLocalTableColumnsName(props.apiName+'Detail')
}
let _local = JSON.parse(localStorage.getItem(state.localTableColumnsName))
state.initTableColums = props.tableColumns || apiTableColumns[props.apiName]
let _list = _local && _local != null && _local != undefined ? _local : JSON.parse(JSON.stringify(state.initTableColums))
return _list
// return props.tableColumns || apiTableColumns[props.apiName]
} }
const emits = defineEmits([ const emits = defineEmits([

2
Web/src/components/importPop/index.vue

@ -70,7 +70,7 @@ const props = defineProps({
}, },
}) })
const mode = import.meta.env.MODE const mode = import.meta.env.MODE
let app_base_api = mode == 'prod' ? systemConfig.baseUrl : import.meta.env.VITE_API_BASE_URL let app_base_api = mode == 'production' ? systemConfig.baseUrl : import.meta.env.VITE_API_BASE_URL
const importUrl = `${app_base_api}/api/${props.apiName}/import` const importUrl = `${app_base_api}/api/${props.apiName}/import`
console.log('importUrl',importUrl) console.log('importUrl',importUrl)

5
Web/src/main.js

@ -25,6 +25,11 @@ import { directive } from '@/directive/index'
// 上传附件注册 // 上传附件注册
import { Boot } from '@wangeditor/editor' import { Boot } from '@wangeditor/editor'
import attachmentModule from '@wangeditor/plugin-upload-attachment' import attachmentModule from '@wangeditor/plugin-upload-attachment'
// localStorage监听
import { dispatchEventStroage } from "@/utils/common/localStorage"
dispatchEventStroage()
// 注册。要在创建编辑器之前注册,且只能注册一次,不可重复注册。 // 注册。要在创建编辑器之前注册,且只能注册一次,不可重复注册。
Boot.registerModule(attachmentModule) Boot.registerModule(attachmentModule)

2
Web/src/settings.js

@ -1,5 +1,5 @@
const mode = import.meta.env.MODE const mode = import.meta.env.MODE
const _title = mode == 'prod' ? systemConfig.title : 'EDI接口平台' const _title = mode == 'production' ? systemConfig.title : 'EDI接口平台'
export default { export default {
title: _title, title: _title,

2
Web/src/styles/index.scss

@ -87,7 +87,7 @@ div:focus {
} }
//全局input输入框长度不设置时clearable会导致宽度自动变更 //全局input输入框长度不设置时clearable会导致宽度自动变更
.el-input { .el-input {
width: 200px !important; width: 180px !important;
} }
} }
} }

2
Web/src/utils/common/apiTableColumns.js

@ -357,7 +357,7 @@ const apiTableColumns = {
{prop:'creationTime',title:'创建时间',width:180}, {prop:'creationTime',title:'创建时间',width:180},
], ],
// 采购订单风险确认-明细 // 采购订单风险确认-明细
cherysupplierconPoDetail:[ cherysupplierconpoDetail:[
{prop:'purchaseOrder',title:'采购订单号',width:120}, {prop:'purchaseOrder',title:'采购订单号',width:120},
{prop:'serialNumber',title:'行项目号'}, {prop:'serialNumber',title:'行项目号'},
{prop:'plantId',title:'工厂代码'}, {prop:'plantId',title:'工厂代码'},

24
Web/src/utils/common/index.js

@ -1,6 +1,10 @@
import apiServeNames from '@/utils/common/apiServeNames' import apiServeNames from '@/utils/common/apiServeNames'
import apiTableColumns from '@/utils/common/apiTableColumns' import apiTableColumns from '@/utils/common/apiTableColumns'
import store from '@/stores'
const userStore = store.userStore()
const userInfo = userStore.state
// filter中空字符转义 // filter中空字符转义
export function getPageParamsForFilter(pageParams){ export function getPageParamsForFilter(pageParams){
if(pageParams.filters && JSON.stringify(pageParams.filters) != "{}"){ if(pageParams.filters && JSON.stringify(pageParams.filters) != "{}"){
@ -39,6 +43,17 @@ export async function downLoadJSONByString(stringData,title){
} }
// 法根据tableName获取api // 法根据tableName获取api
export function getApiByServeName(value,prop='tableName'){
let _api = null
for(let i in apiServeNames){
if(apiServeNames[i][prop] == value){
_api = i
}
}
return _api
}
// 法根据tableName获取api对应的Coloums
export function getColoumsByServeName(value,prop='tableName',noEdit){ export function getColoumsByServeName(value,prop='tableName',noEdit){
let _api = null let _api = null
for(let i in apiServeNames){ for(let i in apiServeNames){
@ -49,8 +64,15 @@ export function getColoumsByServeName(value,prop='tableName',noEdit){
let __colums = JSON.parse(JSON.stringify(apiTableColumns[_api])) let __colums = JSON.parse(JSON.stringify(apiTableColumns[_api]))
if(noEdit){ if(noEdit){
__colums.forEach(item => { __colums.forEach(item => {
item.type = null if(item.type == 'input' || item.type == 'numberInput' || item.type == 'filterSelect' || item.type == 'datetimeInput'){
item.type = null
}
}); });
} }
return __colums return __colums
} }
// 获取字段设置暂存的key值
export function getLocalTableColumnsName(pageName){
return `tableColumns_${userInfo.userName}_${pageName}`
}

11
Web/src/utils/common/localStorage.js

@ -0,0 +1,11 @@
// 重写setItem事件,当使用setItem的时候,触发,window.dispatchEvent派发事件
export function dispatchEventStroage () {
const signSetItem = localStorage.setItem
localStorage.setItem = function (key, val) {
let setEvent = new Event('setItemEvent')
setEvent.key = key
setEvent.newValue = val
window.dispatchEvent(setEvent)
signSetItem.apply(this, arguments)
}
}

2
Web/src/utils/request.js

@ -4,7 +4,7 @@ import store from '@/stores'
const mode = import.meta.env.MODE const mode = import.meta.env.MODE
console.log('mode',mode) console.log('mode',mode)
let app_base_api = import.meta.env.VITE_API_BASE_URL let app_base_api = import.meta.env.VITE_API_BASE_URL
if(mode == 'prod'){ if(mode == 'production'){
app_base_api = systemConfig.baseUrl app_base_api = systemConfig.baseUrl
} }
// create an axios instance // create an axios instance

4
Web/src/views/logisticsPlan/supplierConPo/index.vue

@ -5,7 +5,7 @@
:searchOptions="state.searchOptions" :searchOptions="state.searchOptions"
:searchFilter="state.searchFilter" :searchFilter="state.searchFilter"
:rightOperation="state.rightOperation" :rightOperation="state.rightOperation"
:detailColumName="'cherysupplierconPoDetail'" :detailColumName="'cherysupplierconpoDetail'"
:searchButtons="['search','export','outputMany']" :searchButtons="['search','export','outputMany']"
:multipleTable="state.auths.hasPermission(state.apiName+':outputMany')" :multipleTable="state.auths.hasPermission(state.apiName+':outputMany')"
></ediTtablePage> ></ediTtablePage>
@ -13,7 +13,7 @@
<script setup> <script setup>
// //
defineOptions({ name: 'supplierConPo' }) defineOptions({ name: 'supplierConPo' })
import store from '@/stores' import store from '@/stores'
import { reactive, ref, onMounted } from 'vue' import { reactive, ref, onMounted } from 'vue'

2
Web/src/views/task/logisticsPlanLog/index.vue

@ -9,6 +9,7 @@
:leftOperation="state.leftOperation" :leftOperation="state.leftOperation"
:leftOperationColumnWidth="180" :leftOperationColumnWidth="180"
:authName="'logisticsPlanLog'" :authName="'logisticsPlanLog'"
:searchFilterOptions="state.searchFilterOptions"
></tablePage> ></tablePage>
<!-- 明细抽屉 --> <!-- 明细抽屉 -->
@ -68,6 +69,7 @@
{type:'input',prop:'taskName',label:'任务名称'}, {type:'input',prop:'taskName',label:'任务名称'},
{type:'datetimerange',prop:'creationTime',label:'创建时间'}, {type:'datetimerange',prop:'creationTime',label:'创建时间'},
], ],
searchFilterOptions:{ module:{action:'=='} },
leftOperation:[ leftOperation:[
{label:'查看详情',name:'showInfo',link:true,type:'primary'}, {label:'查看详情',name:'showInfo',link:true,type:'primary'},
{label:'下载JSON',name:'downloadJSON',link:true,type:'warning'}, {label:'下载JSON',name:'downloadJSON',link:true,type:'warning'},

2
Web/src/views/task/productionQualityLog/index.vue

@ -9,6 +9,7 @@
:leftOperation="state.leftOperation" :leftOperation="state.leftOperation"
:leftOperationColumnWidth="180" :leftOperationColumnWidth="180"
:authName="'productionQualityLog'" :authName="'productionQualityLog'"
:searchFilterOptions="state.searchFilterOptions"
></tablePage> ></tablePage>
<!-- 明细抽屉 --> <!-- 明细抽屉 -->
@ -68,6 +69,7 @@
{type:'input',prop:'taskName',label:'任务名称'}, {type:'input',prop:'taskName',label:'任务名称'},
{type:'datetimerange',prop:'creationTime',label:'创建时间'}, {type:'datetimerange',prop:'creationTime',label:'创建时间'},
], ],
searchFilterOptions:{ module:{action:'=='} },
leftOperation:[ leftOperation:[
{label:'查看详情',name:'showInfo',link:true,type:'primary'}, {label:'查看详情',name:'showInfo',link:true,type:'primary'},
{label:'下载JSON',name:'downloadJSON',link:true,type:'warning'}, {label:'下载JSON',name:'downloadJSON',link:true,type:'warning'},

Loading…
Cancel
Save