Browse Source

【接口看板+job+inventory】查看主表封装-暂存

master
安虹睿 12 months ago
parent
commit
3b66042572
  1. 24
      PC/InterFace.Dash/README.md
  2. 54
      PC/InterFace.Dash/src/components/commonTabel-drawer/index.vue
  3. 7
      PC/InterFace.Dash/src/components/filterForDetailPage/index.vue
  4. 146
      PC/InterFace.Dash/src/mixins/TableMixins.js
  5. 6
      PC/InterFace.Dash/src/mixins/mixins.js
  6. 34
      PC/InterFace.Dash/src/utils/baseData/urlOption.js
  7. 98
      PC/InterFace.Dash/src/utils/index.js
  8. 24
      PC/UI.WinIn.FasterZ.Inventory/README.md
  9. 54
      PC/UI.WinIn.FasterZ.Inventory/src/components/commonTabel-drawer/index.vue
  10. 7
      PC/UI.WinIn.FasterZ.Inventory/src/components/filterForDetailPage/index.vue
  11. 146
      PC/UI.WinIn.FasterZ.Inventory/src/mixins/TableMixins.js
  12. 6
      PC/UI.WinIn.FasterZ.Inventory/src/mixins/mixins.js
  13. 17
      PC/UI.WinIn.FasterZ.Inventory/src/utils/baseData/urlOption.js
  14. 98
      PC/UI.WinIn.FasterZ.Inventory/src/utils/index.js
  15. 24
      PC/UI.WinIn.FasterZ.Job/README.md
  16. 54
      PC/UI.WinIn.FasterZ.Job/src/components/commonTabel-drawer/index.vue
  17. 7
      PC/UI.WinIn.FasterZ.Job/src/components/filterForDetailPage/index.vue
  18. 146
      PC/UI.WinIn.FasterZ.Job/src/mixins/TableMixins.js
  19. 6
      PC/UI.WinIn.FasterZ.Job/src/mixins/mixins.js
  20. 56
      PC/UI.WinIn.FasterZ.Job/src/utils/baseData/urlOption.js
  21. 98
      PC/UI.WinIn.FasterZ.Job/src/utils/index.js

24
PC/InterFace.Dash/README.md

@ -124,3 +124,27 @@ pointNumberFixed 组合上方validType值仅等于pointNumber时:
小数点后方保留位数,如不填写默认为100位 小数点后方保留位数,如不填写默认为100位
<validType>+<pointNumberFixed>示例: <validType>+<pointNumberFixed>示例:
{ type:"input", label:"金额", prop:"money", validType:'pointNumber',pointNumberFixed:2}, { type:"input", label:"金额", prop:"money", validType:'pointNumber',pointNumberFixed:2},
[urlOpion示例]
// 添加页面需要配置位置
// 示例数据
export const TestSchool = {
baseURL:'TestSchool/base',//主表-列表
detailURL:'app/test-school',//主表-明细 + 明细-查看主表
// detailInfoName:'asnNbr',//主表-明细查看详情的title名称
detailListURL:'TestStudentDetail/base',//明细-列表,
masterId:'masterId',//明细获取主表信息的masterId,默认依次为[默认配置defalutMasterId,固定值masterId]
masterName:'studentName'//明细获取主表信息的title名称
// parentURL:null,//明细-查看主表:特殊接口,如果没有则走detailURL
// deleteURL:null,//删除特殊URL
// addURL:null,//新增特殊URL
// editURL:null,//编辑特殊URL
// exportURL:'exportURL',//导出特殊URL
<!-- 20231124 有主表的子列表 查看详情的主表信息处理 -->
//有主表的子表单页的主表信息接口,默认为当前的[detailURL]去掉[-Detail]
// mainShowMasterUrl:null,
//有主表的子表单页的主表链接参数,默认依次为[默认配置defalutMasterId,上方配置中masterId,固定值masterId]
// mainShowMasterId:'masterId',
//有主表的子表单页的主表路由[用于显示列转义],默认为[当前路由]去掉[Detail]
// masterRoute:null,
}

54
PC/InterFace.Dash/src/components/commonTabel-drawer/index.vue

@ -49,6 +49,7 @@
@handleClick="handleClick" @handleClick="handleClick"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 详情 -->
<curren-descriptions <curren-descriptions
border border
v-if="scope.value == 'xq'" v-if="scope.value == 'xq'"
@ -59,6 +60,17 @@
:propsData="propsData" :propsData="propsData"
> >
</curren-descriptions> </curren-descriptions>
<!-- 主表信息 -->
<curren-descriptions
border
v-if="scope.value == 'masterInfo'"
:column="column"
:direction="direction"
:colon="false"
:tabsDesTions="masterColums"
:propsData="propsData.masterInfo"
>
</curren-descriptions>
<!-- 明细 包含分页 头部按钮等 --> <!-- 明细 包含分页 头部按钮等 -->
<tablePagination <tablePagination
ref="tablePaginationForMX_Ref" ref="tablePaginationForMX_Ref"
@ -104,11 +116,12 @@
</template> </template>
</umyTable> </umyTable>
<!-- 自定义扩展 --> <!-- 自定义扩展 -->
<umyTable <!-- <umyTable
v-if=" v-if="
scope.value == zdyValue && scope.value == zdyValue &&
scope.value != 'xq' && scope.value != 'xq' &&
scope.value != 'mx' && scope.value != 'mx' &&
scope.value != 'masterInfo' &&
scope.value != 'hz' && scope.value != 'hz' &&
scope.value != 'zwlcj' scope.value != 'zwlcj'
" "
@ -127,7 +140,7 @@
<template> <template>
<slot></slot> <slot></slot>
</template> </template>
</umyTable> </umyTable> -->
</template> </template>
</curren-tabs> </curren-tabs>
</div> </div>
@ -171,6 +184,10 @@ import pagination from "@/components/Pagination"
import rowDrop from "@/components/rowDrop/index.vue" import rowDrop from "@/components/rowDrop/index.vue"
import * as allUrlOption from '@/utils/baseData/urlOption' import * as allUrlOption from '@/utils/baseData/urlOption'
import { LoadingMixins } from "@/mixins/LoadingMixins"; import { LoadingMixins } from "@/mixins/LoadingMixins";
import {
initApiColumnsForDto,
sliceStrEndDelete
} from '@/utils/index'
export default { export default {
name: 'currenTabel-drawer', name: 'currenTabel-drawer',
components: { components: {
@ -309,7 +326,8 @@ export default {
// tabs // tabs
if (this.dropdownTabsData.length !== 0) { if (this.dropdownTabsData.length !== 0) {
return this.dropdownTabsData return this.dropdownTabsData
} else { }
else {
// //
// if (Object.keys(this.propsData).length != 0) { // if (Object.keys(this.propsData).length != 0) {
if (Object.keys(this.propsData)) { if (Object.keys(this.propsData)) {
@ -317,6 +335,14 @@ export default {
label: "详情", label: "详情",
name: 'xq' name: 'xq'
}] }]
if(this.propsData.masterInfo && this.propsData.masterInfo.length > 0){
this.initDropdownTabsData.push({
label: "主表信息",
name: 'masterInfo'
})
let _master_name = this.URLOption.masterRoute || sliceStrEndDelete(this.$route.name,'Detail')
this.masterColums = initApiColumnsForDto(this.propsData.masterInfo,_master_name,this)
}
// 使 // 使
if(this.propsData.details){ if(this.propsData.details){
this.initDropdownTabsData.push({ this.initDropdownTabsData.push({
@ -343,9 +369,9 @@ export default {
detailHeaderButton:null,//- detailHeaderButton:null,//-
detailInfoTableData:null,//- detailInfoTableData:null,//-
detailInfoTitle:null,//-title detailInfoTitle:null,//-title
otherData:[], // tabs // otherData:[], // tabs
zdyTableColumns:[], // // zdyTableColumns:[], //
zdyValue:'', // // zdyValue:'', //
// firstTabs:'xq', // firstTabs:'xq',
initDropdownTabsData:[ initDropdownTabsData:[
{ {
@ -376,9 +402,13 @@ export default {
}, },
totalCountForDetail:0, totalCountForDetail:0,
//-id //-id
URLOption_masterId:allUrlOption[this.$route.name].masterId || 'masterId', URLOption:allUrlOption[this.$route.name],
//-id
URLOption_masterId:allUrlOption[this.$route.name].masterId || allUrlOption.defalutMasterId || 'masterId',
//- //-
URLOption_detailList:allUrlOption[this.$route.name].detailListURL, URLOption_detailList:allUrlOption[this.$route.name].detailListURL,
//
masterColums:null
} }
}, },
methods: { methods: {
@ -574,7 +604,7 @@ export default {
// tabs // tabs
handleClick (val) { handleClick (val) {
this.$emit("currenTabsChange", val);//tab this.$emit("currenTabsChange", val);//tab
this.zdyValue = val.name // this.zdyValue = val.name
this.dropdownTabsData.forEach( item => { this.dropdownTabsData.forEach( item => {
if (item.name == val.name) { if (item.name == val.name) {
let parent = this.$parent let parent = this.$parent
@ -582,12 +612,12 @@ export default {
// //
parent.firstTabs = val.name parent.firstTabs = val.name
if (val.name == 'xq' || val.name == 'mx' || val.name == 'hz') { if (val.name == 'xq' || val.name == 'mx' || val.name == 'hz') {
this.zdyTableColumns = [] // this.zdyTableColumns = []
this.otherData = [] // this.otherData = []
parent.tableLoading = false parent.tableLoading = false
} else { } else {
this.zdyTableColumns = [] // this.zdyTableColumns = []
this.otherData = [] // this.otherData = []
// this.firstTabs = val.name // this.firstTabs = val.name
// tab // tab
// if (item.functionName == 'getListByItemcode') { // if (item.functionName == 'getListByItemcode') {

7
PC/InterFace.Dash/src/components/filterForDetailPage/index.vue

@ -129,6 +129,7 @@
import { mixins } from "@/mixins/mixins"; import { mixins } from "@/mixins/mixins";
import { filterSelectMixins } from '@/mixins/filter-Select' import { filterSelectMixins } from '@/mixins/filter-Select'
import {getListDesById,getPageListForDetail} from "@/api/wms-api" import {getListDesById,getPageListForDetail} from "@/api/wms-api"
import { initApiColumnsForDto } from '@/utils/index'
export default { export default {
name: 'filterForDetailPage', name: 'filterForDetailPage',
mixins: [ mixins: [
@ -204,10 +205,6 @@
data () { data () {
return { return {
dialogShow:true, dialogShow:true,
// URLOption_detailList:allUrlOption[this.$route.name].detailListURL,//-
// URLOption_masterId:allUrlOption[this.$route.name].masterId || 'masterId',//-id
// URLOption_masterName:allUrlOption[this.$route.name].masterName,//-//-title
// URLOption_parent:allUrlOption[this.$route.name].parentURL ? allUrlOption[this.$route.name].parentURL : allUrlOption[this.$route.name].detailURL,//-
currenButtonData: [],// currenButtonData: [],//
operaButtons:[],// operaButtons:[],//
showParentDialog:false,// showParentDialog:false,//
@ -263,7 +260,7 @@
.then(res=>{ .then(res=>{
// //
let _parentName = this.URLOption_detailList.substr(0,this.URLOption_detailList.indexOf('/')) let _parentName = this.URLOption_detailList.substr(0,this.URLOption_detailList.indexOf('/'))
let _Columns = this.initApiColumnsForDto(res.items[0],_parentName) let _Columns = initApiColumnsForDto(res.items[0],_parentName,this)
this.listColumns = this.initTableColumns(_Columns,'detailPage_api') this.listColumns = this.initTableColumns(_Columns,'detailPage_api')
// //
if(res){ if(res){

146
PC/InterFace.Dash/src/mixins/TableMixins.js

@ -1,11 +1,13 @@
import i18n from "@/lang"
import { import {
getPageList, getPageList,
getDetailed, getDetailed,
postDelete, postDelete,
ApiTypeDelete ApiTypeDelete
} from '@/api/wms-api' } from '@/api/wms-api'
import { zhApiColumnsLable,firstWordSizeChange } from '@/utils/index' import {
initApiColumnsForDto,
sliceStrEndDelete
} from '@/utils/index'
export const tableMixins = { export const tableMixins = {
data() { data() {
return { return {
@ -103,9 +105,22 @@ export const tableMixins = {
} }
// 编辑 api // 编辑 api
else if (item.name == "editFromApi") { else if (item.name == "editFromApi") {
// this.addEditApiType = 'edit'
// this.editFromApiRowData = row
// this.displayDialog.addEditApiDialog = true;
let _url = this.URLOption_detail ? this.URLOption_detail : this.URLOption_base
this.Loading.tableLoading = true
getDetailed(row.id, _url)
.then(res=>{
this.addEditApiType = 'edit' this.addEditApiType = 'edit'
this.editFromApiRowData = row this.editFromApiRowData = res
this.displayDialog.addEditApiDialog = true; this.displayDialog.addEditApiDialog = true;
this.Loading.tableLoading = false
})
.catch(err=>{
this.Loading.tableLoading = false
})
} }
// 删除 // 删除
else if (item.name == "delete"){ else if (item.name == "delete"){
@ -158,95 +173,6 @@ export const tableMixins = {
// if(detailsTable && detailsTable[this.$route.name])this.apiColumns_DetailsTable = this.initTableColumns(detailsTable[this.$route.name],'detail_api') // if(detailsTable && detailsTable[this.$route.name])this.apiColumns_DetailsTable = this.initTableColumns(detailsTable[this.$route.name],'detail_api')
// if(detailsPage && detailsPage[this.$route.name])this.apiColumns_DetailsPage = this.initTableColumns(detailsPage[this.$route.name],'detailPage_api') // if(detailsPage && detailsPage[this.$route.name])this.apiColumns_DetailsPage = this.initTableColumns(detailsPage[this.$route.name],'detailPage_api')
// }, // },
// get-dto-column-type接口表头类型初始化
initApiColumnsForDto(list,titleName){
let data = this.$store.getters.dtoColumnTypes
let _coloums = data[titleName].S
let _Columns_Table = []
if(_coloums){
let _data = _coloums.dtoList
_data.forEach(item=>{
// 如果list接口存在数据 ,与list接口返回字段比较处理,list接口存在的话则追加
let _if = firstWordSizeChange(item.name) != 'details'
if(list){
_if = firstWordSizeChange(item.name) in list && firstWordSizeChange(item.name) != 'details'
}
if(_if){
_Columns_Table.push(item)
}
})
}
if(list){
_Columns_Table = _Columns_Table.concat(this.specialAddColumns(list,titleName))
}
return _Columns_Table
},
// 添加特殊字段(api中没有的字段特殊处理)
specialAddColumns(list,titleName){
let _apiName = titleName
let _special_list=[]
// creationTime
if('creationTime' in list){
_special_list.push(
{
"name": "CreationTime",
"apiBaseType": "datetime",
"baseApiName": _apiName + 'CreationTime',
"label": zhApiColumnsLable(_apiName + 'CreationTime') || i18n.t('columNames.CreationTime'),
"prop": "creationTime",
}
)
}
// creatorId
if('creatorId' in list){
_special_list.push(
{
"name": "CreatorId",
"apiBaseType": "string",
"baseApiName": _apiName + 'CreatorId',
"label": zhApiColumnsLable(_apiName + 'CreatorId') || i18n.t('columNames.CreatorId'),
"prop": "creatorId",
}
)
}
// lastModificationTime
if('lastModificationTime' in list){
_special_list.push(
{
"name": "LastModificationTime",
"apiBaseType": "datetime",
"baseApiName": _apiName + 'LastModificationTime',
"label": zhApiColumnsLable(_apiName + 'LastModificationTime') || i18n.t('columNames.LastModificationTime'),
"prop": "lastModificationTime",
}
)
}
// lastModifierId
if('lastModifierId' in list){
_special_list.push(
{
"name": "LastModifierId",
"apiBaseType": "string",
"baseApiName": _apiName + 'LastModifierId',
"label": zhApiColumnsLable(_apiName + 'LastModifierId') || i18n.t('columNames.LastModifierId'),
"prop": "lastModifierId",
}
)
}
// tenantId
if('tenantId' in list){
_special_list.push(
{
"name": "TenantId",
"apiBaseType": "string",
"baseApiName": _apiName + 'TenantId',
"label": zhApiColumnsLable(_apiName + 'TenantId') || i18n.t('columNames.TenantId'),
"prop": "tenantId",
}
)
}
return _special_list
},
//渲染数据 //渲染数据
paging(callback,repeat) { paging(callback,repeat) {
this.Loading.tableLoading = true; this.Loading.tableLoading = true;
@ -255,7 +181,7 @@ export const tableMixins = {
.then(res=>{ .then(res=>{
// 表头处理 // 表头处理
let _list = res.items && res.items.length > 0 ? res.items[0] : null let _list = res.items && res.items.length > 0 ? res.items[0] : null
let _Columns = this.initApiColumnsForDto(_list,this.$route.name) let _Columns = initApiColumnsForDto(_list,this.$route.name,this)
this.apiColumns_Table = this.initTableColumns(_Columns) this.apiColumns_Table = this.initTableColumns(_Columns)
this.apiColumns_DesTions = _Columns this.apiColumns_DesTions = _Columns
// 页面数据处理 // 页面数据处理
@ -312,8 +238,36 @@ export const tableMixins = {
this.Loading.DrawerLoading = true this.Loading.DrawerLoading = true
this.displayDialog.detailsDialog = true; this.displayDialog.detailsDialog = true;
let _url = this.URLOption_detail ? this.URLOption_detail : this.URLOption_base let _url = this.URLOption_detail ? this.URLOption_detail : this.URLOption_base
// 有主表信息子表(表头处理)
if(!this.URLOption.isMaster && this.URLOption.hasDetail){
let _showMasterUrl = this.URLOption.mainShowMasterUrl
if(!this.URLOption.mainShowMasterUrl){
_showMasterUrl = sliceStrEndDelete(this.URLOption_detail,'-Detail')
}
Promise.all([
getDetailed(val.id, _url),
getDetailed(val[this.URLOption.mainShowMasterId || this.URLOption.masterId || this.allUrlOption.defalutMasterId || 'masterId'], _showMasterUrl)
]).then((res) => {
let _allRes = JSON.parse(JSON.stringify(res[0]))
_allRes.masterInfo = res[1]
this.initInlineHttpBack(_allRes)
}).catch(()=>{
this.Loading.DrawerLoading = false
})
}
// 没有主表信息
else{
getDetailed(val.id, _url) getDetailed(val.id, _url)
.then(res=>{ .then(res=>{
this.initInlineHttpBack(res)
})
.catch(err=>{
this.Loading.DrawerLoading = false
})
}
},
// 查看详情获取返回值后处理
initInlineHttpBack(res){
// 打印使用的全部数据存储 // 打印使用的全部数据存储
this.tableDataDetails = JSON.parse(JSON.stringify(res)) this.tableDataDetails = JSON.parse(JSON.stringify(res))
// 数据处理 // 数据处理
@ -321,7 +275,7 @@ export const tableMixins = {
if (res.details) { if (res.details) {
// 表头处理 // 表头处理
let _parentName = this.URLOption_detailList.substr(0,this.URLOption_detailList.indexOf('/')) let _parentName = this.URLOption_detailList.substr(0,this.URLOption_detailList.indexOf('/'))
this.apiColumns_DetailsTable = this.initTableColumns(this.initApiColumnsForDto(res.details[0],_parentName),'detail_api') this.apiColumns_DetailsTable = this.initTableColumns(initApiColumnsForDto(res.details[0],_parentName,this),'detail_api')
if(this.$refs.currenDrawer_Ref){ if(this.$refs.currenDrawer_Ref){
this.$refs.currenDrawer_Ref.getDetailList(res,()=>{ this.$refs.currenDrawer_Ref.getDetailList(res,()=>{
this.inlineDialogCallback() this.inlineDialogCallback()
@ -332,10 +286,6 @@ export const tableMixins = {
}else{ }else{
this.Loading.DrawerLoading = false this.Loading.DrawerLoading = false
} }
})
.catch(err=>{
this.Loading.DrawerLoading = false
})
}, },
// 前端分页处理 // 前端分页处理
// detailListPageFromFE(data){ // detailListPageFromFE(data){

6
PC/InterFace.Dash/src/mixins/mixins.js

@ -8,6 +8,9 @@ import { getLoginName } from "@/utils/auth"
export const mixins = { export const mixins = {
data() { data() {
return { return {
allUrlOption:allUrlOption,
// 当前路由配置
URLOption:allUrlOption[this.$route.name],
//主表-列表 //主表-列表
URLOption_base:allUrlOption[this.$route.name].baseURL, URLOption_base:allUrlOption[this.$route.name].baseURL,
//主表-明细 //主表-明细
@ -23,7 +26,7 @@ export const mixins = {
//明细-查看主表 //明细-查看主表
URLOption_parent:allUrlOption[this.$route.name].parentURL ? allUrlOption[this.$route.name].parentURL : allUrlOption[this.$route.name].detailURL, URLOption_parent:allUrlOption[this.$route.name].parentURL ? allUrlOption[this.$route.name].parentURL : allUrlOption[this.$route.name].detailURL,
//明细-查看主表的连接id //明细-查看主表的连接id
URLOption_masterId:allUrlOption[this.$route.name].masterId || 'masterId', URLOption_masterId:allUrlOption[this.$route.name].masterId || allUrlOption.defalutMasterId || 'masterId',
//明细-查看主表的连接title名称 //明细-查看主表的连接title名称
URLOption_masterName:allUrlOption[this.$route.name].masterName, URLOption_masterName:allUrlOption[this.$route.name].masterName,
// 列表-明细-查看详情标题名称 // 列表-明细-查看详情标题名称
@ -65,7 +68,6 @@ export const mixins = {
name: "determine" name: "determine"
}, },
], ],
addEditApiType: null,//Api新增编辑方式(add,edit) addEditApiType: null,//Api新增编辑方式(add,edit)
editFromApiRowData:null,//Api编辑方式的默认值 editFromApiRowData:null,//Api编辑方式的默认值
} }

34
PC/InterFace.Dash/src/utils/baseData/urlOption.js

@ -1,4 +1,6 @@
// 添加页面需要配置位置 // 默认配置
export const defalutMasterId = 'masterId'
// 示例数据 // 示例数据
export const TestSchool = { export const TestSchool = {
baseURL:'TestSchool/base',//主表-列表 baseURL:'TestSchool/base',//主表-列表
@ -16,6 +18,7 @@ export const ExportCustomUserSetting = {
// baseURL:'get-by-user-and-table-name',//主表-列表 // baseURL:'get-by-user-and-table-name',//主表-列表
baseURL:'ExportCustomUserSetting/base',//主表-列表 baseURL:'ExportCustomUserSetting/base',//主表-列表
detailURL:'app/export-custom-user-setting',//主表-明细 + 明细-查看主表 detailURL:'app/export-custom-user-setting',//主表-明细 + 明细-查看主表
hasDetail:false,
} }
// 接口看板管理-AsnMstr【主子表】 // 接口看板管理-AsnMstr【主子表】
@ -25,19 +28,23 @@ export const AsnMstr = {
// detailInfoName:'asnNbr',//主表-明细查看详情的title名称 // detailInfoName:'asnNbr',//主表-明细查看详情的title名称
detailListURL:'AsnDet/base',//明细-列表, detailListURL:'AsnDet/base',//明细-列表,
masterId:'asnMstrId',//明细获取主表信息的masterId masterId:'asnMstrId',//明细获取主表信息的masterId
masterName:'asnNbr'//明细获取主表信息的title名称 masterName:'asnNbr',//明细获取主表信息的title名称
hasDetail:true,
isMaster:true
} }
// 接口看板管理-IncomingData // 接口看板管理-IncomingData
export const IncomingData = { export const IncomingData = {
baseURL:'IncomingData/base',//主表-列表 baseURL:'IncomingData/base',//主表-列表
detailURL:'app/incoming-data',//主表-明细 + 明细-查看主表 detailURL:'app/incoming-data',//主表-明细 + 明细-查看主表
hasDetail:false
} }
// 接口看板管理-IncomingDataHistory // 接口看板管理-IncomingDataHistory
export const IncomingDataHistory = { export const IncomingDataHistory = {
baseURL:'IncomingDataHistory/base',//主表-列表 baseURL:'IncomingDataHistory/base',//主表-列表
detailURL:'app/incoming-data-history',//主表-明细 + 明细-查看主表 detailURL:'app/incoming-data-history',//主表-明细 + 明细-查看主表
hasDetail:false
} }
@ -45,60 +52,70 @@ export const IncomingDataHistory = {
export const OutgoingData = { export const OutgoingData = {
baseURL:'OutgoingData/base',//主表-列表 baseURL:'OutgoingData/base',//主表-列表
detailURL:'app/outgoing-data',//主表-明细 + 明细-查看主表 detailURL:'app/outgoing-data',//主表-明细 + 明细-查看主表
hasDetail:false
} }
// 接口看板管理-OutgoingDataHistory // 接口看板管理-OutgoingDataHistory
export const OutgoingDataHistory = { export const OutgoingDataHistory = {
baseURL:'OutgoingDataHistory/base',//主表-列表 baseURL:'OutgoingDataHistory/base',//主表-列表
detailURL:'app/outgoing-data-history',//主表-明细 + 明细-查看主表 detailURL:'app/outgoing-data-history',//主表-明细 + 明细-查看主表
hasDetail:false
} }
// 接口看板管理-MessageReceive // 接口看板管理-MessageReceive
export const MessageReceive = { export const MessageReceive = {
baseURL:'MessageReceive/base',//主表-列表 baseURL:'MessageReceive/base',//主表-列表
detailURL:'app/message-receive',//主表-明细 + 明细-查看主表 detailURL:'app/message-receive',//主表-明细 + 明细-查看主表
hasDetail:false
} }
// 接口看板管理-MesProductL7PartsNote // 接口看板管理-MesProductL7PartsNote
export const MesProductL7PartsNote = { export const MesProductL7PartsNote = {
baseURL:'MesProductL7PartsNote/base',//主表-列表 baseURL:'MesProductL7PartsNote/base',//主表-列表
detailURL:'app/mes-product-l7Parts-note',//主表-明细 + 明细-查看主表 detailURL:'app/mes-product-l7Parts-note',//主表-明细 + 明细-查看主表
hasDetail:false
} }
// 接口看板管理-Bom // 接口看板管理-Bom
export const Bom = { export const Bom = {
baseURL:'Bom/base',//主表-列表 baseURL:'Bom/base',//主表-列表
detailURL:'app/bom',//主表-明细 + 明细-查看主表 detailURL:'app/bom',//主表-明细 + 明细-查看主表
hasDetail:false
} }
// 接口看板管理-CustPart // 接口看板管理-CustPart
export const CustPart = { export const CustPart = {
baseURL:'CustPart/base',//主表-列表 baseURL:'CustPart/base',//主表-列表
detailURL:'app/cust-part',//主表-明细 + 明细-查看主表 detailURL:'app/cust-part',//主表-明细 + 明细-查看主表
hasDetail:false
} }
// 接口看板管理-Cust // 接口看板管理-Cust
export const Cust = { export const Cust = {
baseURL:'Cust/base',//主表-列表 baseURL:'Cust/base',//主表-列表
detailURL:'app/cust',//主表-明细 + 明细-查看主表 detailURL:'app/cust',//主表-明细 + 明细-查看主表
hasDetail:false
} }
// 接口看板管理-Inventory // 接口看板管理-Inventory
export const Inventory = { export const Inventory = {
baseURL:'Inventory/base',//主表-列表 baseURL:'Inventory/base',//主表-列表
detailURL:'app/inventory',//主表-明细 + 明细-查看主表 detailURL:'app/inventory',//主表-明细 + 明细-查看主表
hasDetail:false
} }
// 接口看板管理-Loc // 接口看板管理-Loc
export const Loc = { export const Loc = {
baseURL:'Loc/base',//主表-列表 baseURL:'Loc/base',//主表-列表
detailURL:'app/loc',//主表-明细 + 明细-查看主表 detailURL:'app/loc',//主表-明细 + 明细-查看主表
hasDetail:false
} }
// 接口看板管理-Part // 接口看板管理-Part
export const Part = { export const Part = {
baseURL:'Part/base',//主表-列表 baseURL:'Part/base',//主表-列表
detailURL:'app/part',//主表-明细 + 明细-查看主表 detailURL:'app/part',//主表-明细 + 明细-查看主表
hasDetail:false
} }
// 接口看板管理-PoMstr【主子表】 // 接口看板管理-PoMstr【主子表】
@ -108,19 +125,23 @@ export const PoMstr = {
// detailInfoName:'asnNbr',//主表-明细查看详情的title名称 // detailInfoName:'asnNbr',//主表-明细查看详情的title名称
detailListURL:'PoDet/base',//明细-列表, detailListURL:'PoDet/base',//明细-列表,
masterId:'poMstrId',//明细获取主表信息的masterId masterId:'poMstrId',//明细获取主表信息的masterId
masterName:'poNbr'//明细获取主表信息的title名称 masterName:'poNbr',//明细获取主表信息的title名称
hasDetail:true,
isMaster:true
} }
// 接口看板管理-PrhHist // 接口看板管理-PrhHist
export const PrhHist = { export const PrhHist = {
baseURL:'PrhHist/base',//主表-列表 baseURL:'PrhHist/base',//主表-列表
detailURL:'app/prh-hist',//主表-明细 + 明细-查看主表 detailURL:'app/prh-hist',//主表-明细 + 明细-查看主表
hasDetail:false
} }
// 接口看板管理-ProdLine // 接口看板管理-ProdLine
export const ProdLine = { export const ProdLine = {
baseURL:'ProdLine/base',//主表-列表 baseURL:'ProdLine/base',//主表-列表
detailURL:'app/prod-line',//主表-明细 + 明细-查看主表 detailURL:'app/prod-line',//主表-明细 + 明细-查看主表
hasDetail:false
} }
// 接口看板管理-ReceiptMstr【主子表】 // 接口看板管理-ReceiptMstr【主子表】
@ -131,6 +152,8 @@ export const ReceiptMstr = {
detailListURL:'ReceiptDet/base',//明细-列表, detailListURL:'ReceiptDet/base',//明细-列表,
masterId:'receiptMstrId',//明细获取主表信息的masterId masterId:'receiptMstrId',//明细获取主表信息的masterId
// masterName:'receiptMstrAsnNbr'//明细获取主表信息的title名称 // masterName:'receiptMstrAsnNbr'//明细获取主表信息的title名称
hasDetail:true,
isMaster:true
} }
// 接口看板管理-ReturnMstr【主子表】 // 接口看板管理-ReturnMstr【主子表】
@ -141,23 +164,28 @@ export const ReturnMstr = {
detailListURL:'ReturnDet/base',//明细-列表, detailListURL:'ReturnDet/base',//明细-列表,
masterId:'returnMstrId',//明细获取主表信息的masterId masterId:'returnMstrId',//明细获取主表信息的masterId
// masterName:'returnMstrAsnNbr'//明细获取主表信息的title名称 // masterName:'returnMstrAsnNbr'//明细获取主表信息的title名称
hasDetail:true,
isMaster:true
} }
// 接口看板管理-VendPart // 接口看板管理-VendPart
export const VendPart = { export const VendPart = {
baseURL:'VendPart/base',//主表-列表 baseURL:'VendPart/base',//主表-列表
detailURL:'app/vend-part',//主表-明细 + 明细-查看主表 detailURL:'app/vend-part',//主表-明细 + 明细-查看主表
hasDetail:false
} }
// 接口看板管理-Vend // 接口看板管理-Vend
export const Vend = { export const Vend = {
baseURL:'Vend/base',//主表-列表 baseURL:'Vend/base',//主表-列表
detailURL:'app/vend',//主表-明细 + 明细-查看主表 detailURL:'app/vend',//主表-明细 + 明细-查看主表
hasDetail:false
} }
// 接口看板管理-SodDet // 接口看板管理-SodDet
export const SodDet = { export const SodDet = {
baseURL:'SodDet/base',//主表-列表 baseURL:'SodDet/base',//主表-列表
detailURL:'app/sod-det',//主表-明细 + 明细-查看主表 detailURL:'app/sod-det',//主表-明细 + 明细-查看主表
hasDetail:false
} }

98
PC/InterFace.Dash/src/utils/index.js

@ -3,6 +3,7 @@
*/ */
import {fileStorage, getPageList } from '@/api/wms-api' import {fileStorage, getPageList } from '@/api/wms-api'
import store from '@/store' import store from '@/store'
import i18n from "@/lang"
/** /**
* @param {string} url * @param {string} url
@ -429,3 +430,100 @@ export function firstWordSizeChange (str,type='Lower') {
} }
} }
// get-dto-column-type接口表头类型初始化
export function initApiColumnsForDto (list,titleName,that) {
let data = that.$store.getters.dtoColumnTypes
let _coloums = data[titleName].S
let _Columns_Table = []
if(_coloums){
let _data = _coloums.dtoList
_data.forEach(item=>{
// 如果list接口存在数据 ,与list接口返回字段比较处理,list接口存在的话则追加
let _if = firstWordSizeChange(item.name) != 'details'
if(list){
_if = firstWordSizeChange(item.name) in list && firstWordSizeChange(item.name) != 'details'
}
if(_if){
_Columns_Table.push(item)
}
})
}
if(list){
_Columns_Table = _Columns_Table.concat(specialAddColumns(list,titleName))
}
return _Columns_Table
}
// 特殊字段转义处理(api中没有的字段特殊处理)
export function specialAddColumns(list,titleName){
let _apiName = titleName
let _special_list=[]
// creationTime
if('creationTime' in list){
_special_list.push(
{
"name": "CreationTime",
"apiBaseType": "datetime",
"baseApiName": _apiName + 'CreationTime',
"label": zhApiColumnsLable(_apiName + 'CreationTime') || i18n.t('columNames.CreationTime'),
"prop": "creationTime",
}
)
}
// creatorId
if('creatorId' in list){
_special_list.push(
{
"name": "CreatorId",
"apiBaseType": "string",
"baseApiName": _apiName + 'CreatorId',
"label": zhApiColumnsLable(_apiName + 'CreatorId') || i18n.t('columNames.CreatorId'),
"prop": "creatorId",
}
)
}
// lastModificationTime
if('lastModificationTime' in list){
_special_list.push(
{
"name": "LastModificationTime",
"apiBaseType": "datetime",
"baseApiName": _apiName + 'LastModificationTime',
"label": zhApiColumnsLable(_apiName + 'LastModificationTime') || i18n.t('columNames.LastModificationTime'),
"prop": "lastModificationTime",
}
)
}
// lastModifierId
if('lastModifierId' in list){
_special_list.push(
{
"name": "LastModifierId",
"apiBaseType": "string",
"baseApiName": _apiName + 'LastModifierId',
"label": zhApiColumnsLable(_apiName + 'LastModifierId') || i18n.t('columNames.LastModifierId'),
"prop": "lastModifierId",
}
)
}
// tenantId
if('tenantId' in list){
_special_list.push(
{
"name": "TenantId",
"apiBaseType": "string",
"baseApiName": _apiName + 'TenantId',
"label": zhApiColumnsLable(_apiName + 'TenantId') || i18n.t('columNames.TenantId'),
"prop": "tenantId",
}
)
}
return _special_list
}
// 从字段中删除最后某字段
export function sliceStrEndDelete(str,deleteStr){
let _d_l = str.length - deleteStr.length
return str.slice(0,_d_l)
}

24
PC/UI.WinIn.FasterZ.Inventory/README.md

@ -124,3 +124,27 @@ pointNumberFixed 组合上方validType值仅等于pointNumber时:
小数点后方保留位数,如不填写默认为100位 小数点后方保留位数,如不填写默认为100位
<validType>+<pointNumberFixed>示例: <validType>+<pointNumberFixed>示例:
{ type:"input", label:"金额", prop:"money", validType:'pointNumber',pointNumberFixed:2}, { type:"input", label:"金额", prop:"money", validType:'pointNumber',pointNumberFixed:2},
[urlOpion示例]
// 添加页面需要配置位置
// 示例数据
export const TestSchool = {
baseURL:'TestSchool/base',//主表-列表
detailURL:'app/test-school',//主表-明细 + 明细-查看主表
// detailInfoName:'asnNbr',//主表-明细查看详情的title名称
detailListURL:'TestStudentDetail/base',//明细-列表,
masterId:'masterId',//明细获取主表信息的masterId,默认依次为[默认配置defalutMasterId,固定值masterId]
masterName:'studentName'//明细获取主表信息的title名称
// parentURL:null,//明细-查看主表:特殊接口,如果没有则走detailURL
// deleteURL:null,//删除特殊URL
// addURL:null,//新增特殊URL
// editURL:null,//编辑特殊URL
// exportURL:'exportURL',//导出特殊URL
<!-- 20231124 有主表的子列表 查看详情的主表信息处理 -->
//有主表的子表单页的主表信息接口,默认为当前的[detailURL]去掉[-Detail]
// mainShowMasterUrl:null,
//有主表的子表单页的主表链接参数,默认依次为[默认配置defalutMasterId,上方配置中masterId,固定值masterId]
// mainShowMasterId:'masterId',
//有主表的子表单页的主表路由[用于显示列转义],默认为[当前路由]去掉[Detail]
// masterRoute:null,
}

54
PC/UI.WinIn.FasterZ.Inventory/src/components/commonTabel-drawer/index.vue

@ -49,6 +49,7 @@
@handleClick="handleClick" @handleClick="handleClick"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 详情 -->
<curren-descriptions <curren-descriptions
border border
v-if="scope.value == 'xq'" v-if="scope.value == 'xq'"
@ -59,6 +60,17 @@
:propsData="propsData" :propsData="propsData"
> >
</curren-descriptions> </curren-descriptions>
<!-- 主表信息 -->
<curren-descriptions
border
v-if="scope.value == 'masterInfo'"
:column="column"
:direction="direction"
:colon="false"
:tabsDesTions="masterColums"
:propsData="propsData.masterInfo"
>
</curren-descriptions>
<!-- 明细 包含分页 头部按钮等 --> <!-- 明细 包含分页 头部按钮等 -->
<tablePagination <tablePagination
ref="tablePaginationForMX_Ref" ref="tablePaginationForMX_Ref"
@ -104,11 +116,12 @@
</template> </template>
</umyTable> </umyTable>
<!-- 自定义扩展 --> <!-- 自定义扩展 -->
<umyTable <!-- <umyTable
v-if=" v-if="
scope.value == zdyValue && scope.value == zdyValue &&
scope.value != 'xq' && scope.value != 'xq' &&
scope.value != 'mx' && scope.value != 'mx' &&
scope.value != 'masterInfo' &&
scope.value != 'hz' && scope.value != 'hz' &&
scope.value != 'zwlcj' scope.value != 'zwlcj'
" "
@ -127,7 +140,7 @@
<template> <template>
<slot></slot> <slot></slot>
</template> </template>
</umyTable> </umyTable> -->
</template> </template>
</curren-tabs> </curren-tabs>
</div> </div>
@ -171,6 +184,10 @@ import pagination from "@/components/Pagination"
import rowDrop from "@/components/rowDrop/index.vue" import rowDrop from "@/components/rowDrop/index.vue"
import * as allUrlOption from '@/utils/baseData/urlOption' import * as allUrlOption from '@/utils/baseData/urlOption'
import { LoadingMixins } from "@/mixins/LoadingMixins"; import { LoadingMixins } from "@/mixins/LoadingMixins";
import {
initApiColumnsForDto,
sliceStrEndDelete
} from '@/utils/index'
export default { export default {
name: 'currenTabel-drawer', name: 'currenTabel-drawer',
components: { components: {
@ -309,7 +326,8 @@ export default {
// tabs // tabs
if (this.dropdownTabsData.length !== 0) { if (this.dropdownTabsData.length !== 0) {
return this.dropdownTabsData return this.dropdownTabsData
} else { }
else {
// //
// if (Object.keys(this.propsData).length != 0) { // if (Object.keys(this.propsData).length != 0) {
if (Object.keys(this.propsData)) { if (Object.keys(this.propsData)) {
@ -317,6 +335,14 @@ export default {
label: "详情", label: "详情",
name: 'xq' name: 'xq'
}] }]
if(this.propsData.masterInfo && this.propsData.masterInfo.length > 0){
this.initDropdownTabsData.push({
label: "主表信息",
name: 'masterInfo'
})
let _master_name = this.URLOption.masterRoute || sliceStrEndDelete(this.$route.name,'Detail')
this.masterColums = initApiColumnsForDto(this.propsData.masterInfo,_master_name,this)
}
// 使 // 使
if(this.propsData.details){ if(this.propsData.details){
this.initDropdownTabsData.push({ this.initDropdownTabsData.push({
@ -343,9 +369,9 @@ export default {
detailHeaderButton:null,//- detailHeaderButton:null,//-
detailInfoTableData:null,//- detailInfoTableData:null,//-
detailInfoTitle:null,//-title detailInfoTitle:null,//-title
otherData:[], // tabs // otherData:[], // tabs
zdyTableColumns:[], // // zdyTableColumns:[], //
zdyValue:'', // // zdyValue:'', //
// firstTabs:'xq', // firstTabs:'xq',
initDropdownTabsData:[ initDropdownTabsData:[
{ {
@ -376,9 +402,13 @@ export default {
}, },
totalCountForDetail:0, totalCountForDetail:0,
//-id //-id
URLOption_masterId:allUrlOption[this.$route.name].masterId || 'masterId', URLOption:allUrlOption[this.$route.name],
//-id
URLOption_masterId:allUrlOption[this.$route.name].masterId || allUrlOption.defalutMasterId || 'masterId',
//- //-
URLOption_detailList:allUrlOption[this.$route.name].detailListURL, URLOption_detailList:allUrlOption[this.$route.name].detailListURL,
//
masterColums:null
} }
}, },
methods: { methods: {
@ -574,7 +604,7 @@ export default {
// tabs // tabs
handleClick (val) { handleClick (val) {
this.$emit("currenTabsChange", val);//tab this.$emit("currenTabsChange", val);//tab
this.zdyValue = val.name // this.zdyValue = val.name
this.dropdownTabsData.forEach( item => { this.dropdownTabsData.forEach( item => {
if (item.name == val.name) { if (item.name == val.name) {
let parent = this.$parent let parent = this.$parent
@ -582,12 +612,12 @@ export default {
// //
parent.firstTabs = val.name parent.firstTabs = val.name
if (val.name == 'xq' || val.name == 'mx' || val.name == 'hz') { if (val.name == 'xq' || val.name == 'mx' || val.name == 'hz') {
this.zdyTableColumns = [] // this.zdyTableColumns = []
this.otherData = [] // this.otherData = []
parent.tableLoading = false parent.tableLoading = false
} else { } else {
this.zdyTableColumns = [] // this.zdyTableColumns = []
this.otherData = [] // this.otherData = []
// this.firstTabs = val.name // this.firstTabs = val.name
// tab // tab
// if (item.functionName == 'getListByItemcode') { // if (item.functionName == 'getListByItemcode') {

7
PC/UI.WinIn.FasterZ.Inventory/src/components/filterForDetailPage/index.vue

@ -129,6 +129,7 @@
import { mixins } from "@/mixins/mixins"; import { mixins } from "@/mixins/mixins";
import { filterSelectMixins } from '@/mixins/filter-Select' import { filterSelectMixins } from '@/mixins/filter-Select'
import {getListDesById,getPageListForDetail} from "@/api/wms-api" import {getListDesById,getPageListForDetail} from "@/api/wms-api"
import { initApiColumnsForDto } from '@/utils/index'
export default { export default {
name: 'filterForDetailPage', name: 'filterForDetailPage',
mixins: [ mixins: [
@ -204,10 +205,6 @@
data () { data () {
return { return {
dialogShow:true, dialogShow:true,
// URLOption_detailList:allUrlOption[this.$route.name].detailListURL,//-
// URLOption_masterId:allUrlOption[this.$route.name].masterId || 'masterId',//-id
// URLOption_masterName:allUrlOption[this.$route.name].masterName,//-//-title
// URLOption_parent:allUrlOption[this.$route.name].parentURL ? allUrlOption[this.$route.name].parentURL : allUrlOption[this.$route.name].detailURL,//-
currenButtonData: [],// currenButtonData: [],//
operaButtons:[],// operaButtons:[],//
showParentDialog:false,// showParentDialog:false,//
@ -263,7 +260,7 @@
.then(res=>{ .then(res=>{
// //
let _parentName = this.URLOption_detailList.substr(0,this.URLOption_detailList.indexOf('/')) let _parentName = this.URLOption_detailList.substr(0,this.URLOption_detailList.indexOf('/'))
let _Columns = this.initApiColumnsForDto(res.items[0],_parentName) let _Columns = initApiColumnsForDto(res.items[0],_parentName,this)
this.listColumns = this.initTableColumns(_Columns,'detailPage_api') this.listColumns = this.initTableColumns(_Columns,'detailPage_api')
// //
if(res){ if(res){

146
PC/UI.WinIn.FasterZ.Inventory/src/mixins/TableMixins.js

@ -1,11 +1,13 @@
import i18n from "@/lang"
import { import {
getPageList, getPageList,
getDetailed, getDetailed,
postDelete, postDelete,
ApiTypeDelete ApiTypeDelete
} from '@/api/wms-api' } from '@/api/wms-api'
import { zhApiColumnsLable,firstWordSizeChange } from '@/utils/index' import {
initApiColumnsForDto,
sliceStrEndDelete
} from '@/utils/index'
export const tableMixins = { export const tableMixins = {
data() { data() {
return { return {
@ -103,9 +105,22 @@ export const tableMixins = {
} }
// 编辑 api // 编辑 api
else if (item.name == "editFromApi") { else if (item.name == "editFromApi") {
// this.addEditApiType = 'edit'
// this.editFromApiRowData = row
// this.displayDialog.addEditApiDialog = true;
let _url = this.URLOption_detail ? this.URLOption_detail : this.URLOption_base
this.Loading.tableLoading = true
getDetailed(row.id, _url)
.then(res=>{
this.addEditApiType = 'edit' this.addEditApiType = 'edit'
this.editFromApiRowData = row this.editFromApiRowData = res
this.displayDialog.addEditApiDialog = true; this.displayDialog.addEditApiDialog = true;
this.Loading.tableLoading = false
})
.catch(err=>{
this.Loading.tableLoading = false
})
} }
// 删除 // 删除
else if (item.name == "delete"){ else if (item.name == "delete"){
@ -158,95 +173,6 @@ export const tableMixins = {
// if(detailsTable && detailsTable[this.$route.name])this.apiColumns_DetailsTable = this.initTableColumns(detailsTable[this.$route.name],'detail_api') // if(detailsTable && detailsTable[this.$route.name])this.apiColumns_DetailsTable = this.initTableColumns(detailsTable[this.$route.name],'detail_api')
// if(detailsPage && detailsPage[this.$route.name])this.apiColumns_DetailsPage = this.initTableColumns(detailsPage[this.$route.name],'detailPage_api') // if(detailsPage && detailsPage[this.$route.name])this.apiColumns_DetailsPage = this.initTableColumns(detailsPage[this.$route.name],'detailPage_api')
// }, // },
// get-dto-column-type接口表头类型初始化
initApiColumnsForDto(list,titleName){
let data = this.$store.getters.dtoColumnTypes
let _coloums = data[titleName].S
let _Columns_Table = []
if(_coloums){
let _data = _coloums.dtoList
_data.forEach(item=>{
// 如果list接口存在数据 ,与list接口返回字段比较处理,list接口存在的话则追加
let _if = firstWordSizeChange(item.name) != 'details'
if(list){
_if = firstWordSizeChange(item.name) in list && firstWordSizeChange(item.name) != 'details'
}
if(_if){
_Columns_Table.push(item)
}
})
}
if(list){
_Columns_Table = _Columns_Table.concat(this.specialAddColumns(list,titleName))
}
return _Columns_Table
},
// 添加特殊字段(api中没有的字段特殊处理)
specialAddColumns(list,titleName){
let _apiName = titleName
let _special_list=[]
// creationTime
if('creationTime' in list){
_special_list.push(
{
"name": "CreationTime",
"apiBaseType": "datetime",
"baseApiName": _apiName + 'CreationTime',
"label": zhApiColumnsLable(_apiName + 'CreationTime') || i18n.t('columNames.CreationTime'),
"prop": "creationTime",
}
)
}
// creatorId
if('creatorId' in list){
_special_list.push(
{
"name": "CreatorId",
"apiBaseType": "string",
"baseApiName": _apiName + 'CreatorId',
"label": zhApiColumnsLable(_apiName + 'CreatorId') || i18n.t('columNames.CreatorId'),
"prop": "creatorId",
}
)
}
// lastModificationTime
if('lastModificationTime' in list){
_special_list.push(
{
"name": "LastModificationTime",
"apiBaseType": "datetime",
"baseApiName": _apiName + 'LastModificationTime',
"label": zhApiColumnsLable(_apiName + 'LastModificationTime') || i18n.t('columNames.LastModificationTime'),
"prop": "lastModificationTime",
}
)
}
// lastModifierId
if('lastModifierId' in list){
_special_list.push(
{
"name": "LastModifierId",
"apiBaseType": "string",
"baseApiName": _apiName + 'LastModifierId',
"label": zhApiColumnsLable(_apiName + 'LastModifierId') || i18n.t('columNames.LastModifierId'),
"prop": "lastModifierId",
}
)
}
// tenantId
if('tenantId' in list){
_special_list.push(
{
"name": "TenantId",
"apiBaseType": "string",
"baseApiName": _apiName + 'TenantId',
"label": zhApiColumnsLable(_apiName + 'TenantId') || i18n.t('columNames.TenantId'),
"prop": "tenantId",
}
)
}
return _special_list
},
//渲染数据 //渲染数据
paging(callback,repeat) { paging(callback,repeat) {
this.Loading.tableLoading = true; this.Loading.tableLoading = true;
@ -255,7 +181,7 @@ export const tableMixins = {
.then(res=>{ .then(res=>{
// 表头处理 // 表头处理
let _list = res.items && res.items.length > 0 ? res.items[0] : null let _list = res.items && res.items.length > 0 ? res.items[0] : null
let _Columns = this.initApiColumnsForDto(_list,this.$route.name) let _Columns = initApiColumnsForDto(_list,this.$route.name,this)
this.apiColumns_Table = this.initTableColumns(_Columns) this.apiColumns_Table = this.initTableColumns(_Columns)
this.apiColumns_DesTions = _Columns this.apiColumns_DesTions = _Columns
// 页面数据处理 // 页面数据处理
@ -312,8 +238,36 @@ export const tableMixins = {
this.Loading.DrawerLoading = true this.Loading.DrawerLoading = true
this.displayDialog.detailsDialog = true; this.displayDialog.detailsDialog = true;
let _url = this.URLOption_detail ? this.URLOption_detail : this.URLOption_base let _url = this.URLOption_detail ? this.URLOption_detail : this.URLOption_base
// 有主表信息子表(表头处理)
if(!this.URLOption.isMaster && this.URLOption.hasDetail){
let _showMasterUrl = this.URLOption.mainShowMasterUrl
if(!this.URLOption.mainShowMasterUrl){
_showMasterUrl = sliceStrEndDelete(this.URLOption_detail,'-Detail')
}
Promise.all([
getDetailed(val.id, _url),
getDetailed(val[this.URLOption.mainShowMasterId || this.URLOption.masterId || this.allUrlOption.defalutMasterId || 'masterId'], _showMasterUrl)
]).then((res) => {
let _allRes = JSON.parse(JSON.stringify(res[0]))
_allRes.masterInfo = res[1]
this.initInlineHttpBack(_allRes)
}).catch(()=>{
this.Loading.DrawerLoading = false
})
}
// 没有主表信息
else{
getDetailed(val.id, _url) getDetailed(val.id, _url)
.then(res=>{ .then(res=>{
this.initInlineHttpBack(res)
})
.catch(err=>{
this.Loading.DrawerLoading = false
})
}
},
// 查看详情获取返回值后处理
initInlineHttpBack(res){
// 打印使用的全部数据存储 // 打印使用的全部数据存储
this.tableDataDetails = JSON.parse(JSON.stringify(res)) this.tableDataDetails = JSON.parse(JSON.stringify(res))
// 数据处理 // 数据处理
@ -321,7 +275,7 @@ export const tableMixins = {
if (res.details) { if (res.details) {
// 表头处理 // 表头处理
let _parentName = this.URLOption_detailList.substr(0,this.URLOption_detailList.indexOf('/')) let _parentName = this.URLOption_detailList.substr(0,this.URLOption_detailList.indexOf('/'))
this.apiColumns_DetailsTable = this.initTableColumns(this.initApiColumnsForDto(res.details[0],_parentName),'detail_api') this.apiColumns_DetailsTable = this.initTableColumns(initApiColumnsForDto(res.details[0],_parentName,this),'detail_api')
if(this.$refs.currenDrawer_Ref){ if(this.$refs.currenDrawer_Ref){
this.$refs.currenDrawer_Ref.getDetailList(res,()=>{ this.$refs.currenDrawer_Ref.getDetailList(res,()=>{
this.inlineDialogCallback() this.inlineDialogCallback()
@ -332,10 +286,6 @@ export const tableMixins = {
}else{ }else{
this.Loading.DrawerLoading = false this.Loading.DrawerLoading = false
} }
})
.catch(err=>{
this.Loading.DrawerLoading = false
})
}, },
// 前端分页处理 // 前端分页处理
// detailListPageFromFE(data){ // detailListPageFromFE(data){

6
PC/UI.WinIn.FasterZ.Inventory/src/mixins/mixins.js

@ -8,6 +8,9 @@ import { getLoginName } from "@/utils/auth"
export const mixins = { export const mixins = {
data() { data() {
return { return {
allUrlOption:allUrlOption,
// 当前路由配置
URLOption:allUrlOption[this.$route.name],
//主表-列表 //主表-列表
URLOption_base:allUrlOption[this.$route.name].baseURL, URLOption_base:allUrlOption[this.$route.name].baseURL,
//主表-明细 //主表-明细
@ -23,7 +26,7 @@ export const mixins = {
//明细-查看主表 //明细-查看主表
URLOption_parent:allUrlOption[this.$route.name].parentURL ? allUrlOption[this.$route.name].parentURL : allUrlOption[this.$route.name].detailURL, URLOption_parent:allUrlOption[this.$route.name].parentURL ? allUrlOption[this.$route.name].parentURL : allUrlOption[this.$route.name].detailURL,
//明细-查看主表的连接id //明细-查看主表的连接id
URLOption_masterId:allUrlOption[this.$route.name].masterId || 'masterId', URLOption_masterId:allUrlOption[this.$route.name].masterId || allUrlOption.defalutMasterId || 'masterId',
//明细-查看主表的连接title名称 //明细-查看主表的连接title名称
URLOption_masterName:allUrlOption[this.$route.name].masterName, URLOption_masterName:allUrlOption[this.$route.name].masterName,
// 列表-明细-查看详情标题名称 // 列表-明细-查看详情标题名称
@ -65,7 +68,6 @@ export const mixins = {
name: "determine" name: "determine"
}, },
], ],
addEditApiType: null,//Api新增编辑方式(add,edit) addEditApiType: null,//Api新增编辑方式(add,edit)
editFromApiRowData:null,//Api编辑方式的默认值 editFromApiRowData:null,//Api编辑方式的默认值
} }

17
PC/UI.WinIn.FasterZ.Inventory/src/utils/baseData/urlOption.js

@ -1,3 +1,6 @@
// 默认配置
export const defalutMasterId = 'masterID'
// 示例数据 // 示例数据
export const TestSchool = { export const TestSchool = {
baseURL:'TestSchool/base',//主表-列表 baseURL:'TestSchool/base',//主表-列表
@ -17,58 +20,70 @@ export const TestSchool = {
export const ExportCustomUserSetting = { export const ExportCustomUserSetting = {
baseURL:'ExportCustomUserSetting/base',//主表-列表 baseURL:'ExportCustomUserSetting/base',//主表-列表
detailURL:'app/export-custom-user-setting',//主表-明细 + 明细-查看主表 detailURL:'app/export-custom-user-setting',//主表-明细 + 明细-查看主表
hasDetail:false,
} }
export const Container = { export const Container = {
baseURL:'Container/base',//主表-列表 baseURL:'Container/base',//主表-列表
detailURL:'app/container',//主表-明细 + 明细-查看主表 detailURL:'app/container',//主表-明细 + 明细-查看主表
detailListURL:'ContainerDetail/base',//明细-列表, detailListURL:'ContainerDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId hasDetail:true,
isMaster:true
} }
export const ContainerDetail = { export const ContainerDetail = {
baseURL:'ContainerDetail/base',//主表-列表 baseURL:'ContainerDetail/base',//主表-列表
detailURL:'app/container-detail',//主表-明细 + 明细-查看主表 detailURL:'app/container-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
} }
export const ErpInventoryBalance = { export const ErpInventoryBalance = {
baseURL:'ErpInventoryBalance/base',//主表-列表 baseURL:'ErpInventoryBalance/base',//主表-列表
detailURL:'app/erp-inventory-balance',//主表-明细 + 明细-查看主表 detailURL:'app/erp-inventory-balance',//主表-明细 + 明细-查看主表
hasDetail:false,
} }
export const InventoryBalance = { export const InventoryBalance = {
baseURL:'InventoryBalance/base',//主表-列表 baseURL:'InventoryBalance/base',//主表-列表
detailURL:'app/inventory-balance',//主表-明细 + 明细-查看主表 detailURL:'app/inventory-balance',//主表-明细 + 明细-查看主表
hasDetail:false,
} }
export const InventoryOccupied = { export const InventoryOccupied = {
baseURL:'InventoryOccupied/base',//主表-列表 baseURL:'InventoryOccupied/base',//主表-列表
detailURL:'app/inventory-occupied',//主表-明细 + 明细-查看主表 detailURL:'app/inventory-occupied',//主表-明细 + 明细-查看主表
hasDetail:false,
} }
export const InventoryPredictable = { export const InventoryPredictable = {
baseURL:'InventoryPredictable/base',//主表-列表 baseURL:'InventoryPredictable/base',//主表-列表
detailURL:'app/inventory-predictable',//主表-明细 + 明细-查看主表 detailURL:'app/inventory-predictable',//主表-明细 + 明细-查看主表
hasDetail:false,
} }
export const InventorySnapshot = { export const InventorySnapshot = {
baseURL:'InventorySnapshot/base',//主表-列表 baseURL:'InventorySnapshot/base',//主表-列表
detailURL:'app/inventory-snapshot',//主表-明细 + 明细-查看主表 detailURL:'app/inventory-snapshot',//主表-明细 + 明细-查看主表
hasDetail:false,
} }
export const InventoryTransaction = { export const InventoryTransaction = {
baseURL:'InventoryTransaction/base',//主表-列表 baseURL:'InventoryTransaction/base',//主表-列表
detailURL:'app/inventory-transaction',//主表-明细 + 明细-查看主表 detailURL:'app/inventory-transaction',//主表-明细 + 明细-查看主表
hasDetail:false,
} }
export const InventoryTransferLog = { export const InventoryTransferLog = {
baseURL:'InventoryTransferLog/base',//主表-列表 baseURL:'InventoryTransferLog/base',//主表-列表
detailURL:'app/inventory-transfer-log',//主表-明细 + 明细-查看主表 detailURL:'app/inventory-transfer-log',//主表-明细 + 明细-查看主表
hasDetail:false,
} }
export const LocationCapacity = { export const LocationCapacity = {
baseURL:'LocationCapacity/base',//主表-列表 baseURL:'LocationCapacity/base',//主表-列表
detailURL:'app/location-capacity',//主表-明细 + 明细-查看主表 detailURL:'app/location-capacity',//主表-明细 + 明细-查看主表
hasDetail:false,
} }

98
PC/UI.WinIn.FasterZ.Inventory/src/utils/index.js

@ -3,6 +3,7 @@
*/ */
import {fileStorage, getPageList } from '@/api/wms-api' import {fileStorage, getPageList } from '@/api/wms-api'
import store from '@/store' import store from '@/store'
import i18n from "@/lang"
/** /**
* @param {string} url * @param {string} url
@ -429,3 +430,100 @@
} }
} }
// get-dto-column-type接口表头类型初始化
export function initApiColumnsForDto (list,titleName,that) {
let data = that.$store.getters.dtoColumnTypes
let _coloums = data[titleName].S
let _Columns_Table = []
if(_coloums){
let _data = _coloums.dtoList
_data.forEach(item=>{
// 如果list接口存在数据 ,与list接口返回字段比较处理,list接口存在的话则追加
let _if = firstWordSizeChange(item.name) != 'details'
if(list){
_if = firstWordSizeChange(item.name) in list && firstWordSizeChange(item.name) != 'details'
}
if(_if){
_Columns_Table.push(item)
}
})
}
if(list){
_Columns_Table = _Columns_Table.concat(specialAddColumns(list,titleName))
}
return _Columns_Table
}
// 特殊字段转义处理(api中没有的字段特殊处理)
export function specialAddColumns(list,titleName){
let _apiName = titleName
let _special_list=[]
// creationTime
if('creationTime' in list){
_special_list.push(
{
"name": "CreationTime",
"apiBaseType": "datetime",
"baseApiName": _apiName + 'CreationTime',
"label": zhApiColumnsLable(_apiName + 'CreationTime') || i18n.t('columNames.CreationTime'),
"prop": "creationTime",
}
)
}
// creatorId
if('creatorId' in list){
_special_list.push(
{
"name": "CreatorId",
"apiBaseType": "string",
"baseApiName": _apiName + 'CreatorId',
"label": zhApiColumnsLable(_apiName + 'CreatorId') || i18n.t('columNames.CreatorId'),
"prop": "creatorId",
}
)
}
// lastModificationTime
if('lastModificationTime' in list){
_special_list.push(
{
"name": "LastModificationTime",
"apiBaseType": "datetime",
"baseApiName": _apiName + 'LastModificationTime',
"label": zhApiColumnsLable(_apiName + 'LastModificationTime') || i18n.t('columNames.LastModificationTime'),
"prop": "lastModificationTime",
}
)
}
// lastModifierId
if('lastModifierId' in list){
_special_list.push(
{
"name": "LastModifierId",
"apiBaseType": "string",
"baseApiName": _apiName + 'LastModifierId',
"label": zhApiColumnsLable(_apiName + 'LastModifierId') || i18n.t('columNames.LastModifierId'),
"prop": "lastModifierId",
}
)
}
// tenantId
if('tenantId' in list){
_special_list.push(
{
"name": "TenantId",
"apiBaseType": "string",
"baseApiName": _apiName + 'TenantId',
"label": zhApiColumnsLable(_apiName + 'TenantId') || i18n.t('columNames.TenantId'),
"prop": "tenantId",
}
)
}
return _special_list
}
// 从字段中删除最后某字段
export function sliceStrEndDelete(str,deleteStr){
let _d_l = str.length - deleteStr.length
return str.slice(0,_d_l)
}

24
PC/UI.WinIn.FasterZ.Job/README.md

@ -124,3 +124,27 @@ pointNumberFixed 组合上方validType值仅等于pointNumber时:
小数点后方保留位数,如不填写默认为100位 小数点后方保留位数,如不填写默认为100位
<validType>+<pointNumberFixed>示例: <validType>+<pointNumberFixed>示例:
{ type:"input", label:"金额", prop:"money", validType:'pointNumber',pointNumberFixed:2}, { type:"input", label:"金额", prop:"money", validType:'pointNumber',pointNumberFixed:2},
[urlOpion示例]
// 添加页面需要配置位置
// 示例数据
export const TestSchool = {
baseURL:'TestSchool/base',//主表-列表
detailURL:'app/test-school',//主表-明细 + 明细-查看主表
// detailInfoName:'asnNbr',//主表-明细查看详情的title名称
detailListURL:'TestStudentDetail/base',//明细-列表,
masterId:'masterId',//明细获取主表信息的masterId,默认依次为[默认配置defalutMasterId,固定值masterId]
masterName:'studentName'//明细获取主表信息的title名称
// parentURL:null,//明细-查看主表:特殊接口,如果没有则走detailURL
// deleteURL:null,//删除特殊URL
// addURL:null,//新增特殊URL
// editURL:null,//编辑特殊URL
// exportURL:'exportURL',//导出特殊URL
<!-- 20231124 有主表的子列表 查看详情的主表信息处理 -->
//有主表的子表单页的主表信息接口,默认为当前的[detailURL]去掉[-Detail]
// mainShowMasterUrl:null,
//有主表的子表单页的主表链接参数,默认依次为[默认配置defalutMasterId,上方配置中masterId,固定值masterId]
// mainShowMasterId:'masterId',
//有主表的子表单页的主表路由[用于显示列转义],默认为[当前路由]去掉[Detail]
// masterRoute:null,
}

54
PC/UI.WinIn.FasterZ.Job/src/components/commonTabel-drawer/index.vue

@ -49,6 +49,7 @@
@handleClick="handleClick" @handleClick="handleClick"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 详情 -->
<curren-descriptions <curren-descriptions
border border
v-if="scope.value == 'xq'" v-if="scope.value == 'xq'"
@ -59,6 +60,17 @@
:propsData="propsData" :propsData="propsData"
> >
</curren-descriptions> </curren-descriptions>
<!-- 主表信息 -->
<curren-descriptions
border
v-if="scope.value == 'masterInfo'"
:column="column"
:direction="direction"
:colon="false"
:tabsDesTions="masterColums"
:propsData="propsData.masterInfo"
>
</curren-descriptions>
<!-- 明细 包含分页 头部按钮等 --> <!-- 明细 包含分页 头部按钮等 -->
<tablePagination <tablePagination
ref="tablePaginationForMX_Ref" ref="tablePaginationForMX_Ref"
@ -104,11 +116,12 @@
</template> </template>
</umyTable> </umyTable>
<!-- 自定义扩展 --> <!-- 自定义扩展 -->
<umyTable <!-- <umyTable
v-if=" v-if="
scope.value == zdyValue && scope.value == zdyValue &&
scope.value != 'xq' && scope.value != 'xq' &&
scope.value != 'mx' && scope.value != 'mx' &&
scope.value != 'masterInfo' &&
scope.value != 'hz' && scope.value != 'hz' &&
scope.value != 'zwlcj' scope.value != 'zwlcj'
" "
@ -127,7 +140,7 @@
<template> <template>
<slot></slot> <slot></slot>
</template> </template>
</umyTable> </umyTable> -->
</template> </template>
</curren-tabs> </curren-tabs>
</div> </div>
@ -171,6 +184,10 @@ import pagination from "@/components/Pagination"
import rowDrop from "@/components/rowDrop/index.vue" import rowDrop from "@/components/rowDrop/index.vue"
import * as allUrlOption from '@/utils/baseData/urlOption' import * as allUrlOption from '@/utils/baseData/urlOption'
import { LoadingMixins } from "@/mixins/LoadingMixins"; import { LoadingMixins } from "@/mixins/LoadingMixins";
import {
initApiColumnsForDto,
sliceStrEndDelete
} from '@/utils/index'
export default { export default {
name: 'currenTabel-drawer', name: 'currenTabel-drawer',
components: { components: {
@ -309,7 +326,8 @@ export default {
// tabs // tabs
if (this.dropdownTabsData.length !== 0) { if (this.dropdownTabsData.length !== 0) {
return this.dropdownTabsData return this.dropdownTabsData
} else { }
else {
// //
// if (Object.keys(this.propsData).length != 0) { // if (Object.keys(this.propsData).length != 0) {
if (Object.keys(this.propsData)) { if (Object.keys(this.propsData)) {
@ -317,6 +335,14 @@ export default {
label: "详情", label: "详情",
name: 'xq' name: 'xq'
}] }]
if(this.propsData.masterInfo && this.propsData.masterInfo.length > 0){
this.initDropdownTabsData.push({
label: "主表信息",
name: 'masterInfo'
})
let _master_name = this.URLOption.masterRoute || sliceStrEndDelete(this.$route.name,'Detail')
this.masterColums = initApiColumnsForDto(this.propsData.masterInfo,_master_name,this)
}
// 使 // 使
if(this.propsData.details){ if(this.propsData.details){
this.initDropdownTabsData.push({ this.initDropdownTabsData.push({
@ -343,9 +369,9 @@ export default {
detailHeaderButton:null,//- detailHeaderButton:null,//-
detailInfoTableData:null,//- detailInfoTableData:null,//-
detailInfoTitle:null,//-title detailInfoTitle:null,//-title
otherData:[], // tabs // otherData:[], // tabs
zdyTableColumns:[], // // zdyTableColumns:[], //
zdyValue:'', // // zdyValue:'', //
// firstTabs:'xq', // firstTabs:'xq',
initDropdownTabsData:[ initDropdownTabsData:[
{ {
@ -376,9 +402,13 @@ export default {
}, },
totalCountForDetail:0, totalCountForDetail:0,
//-id //-id
URLOption_masterId:allUrlOption[this.$route.name].masterId || 'masterId', URLOption:allUrlOption[this.$route.name],
//-id
URLOption_masterId:allUrlOption[this.$route.name].masterId || allUrlOption.defalutMasterId || 'masterId',
//- //-
URLOption_detailList:allUrlOption[this.$route.name].detailListURL, URLOption_detailList:allUrlOption[this.$route.name].detailListURL,
//
masterColums:null
} }
}, },
methods: { methods: {
@ -574,7 +604,7 @@ export default {
// tabs // tabs
handleClick (val) { handleClick (val) {
this.$emit("currenTabsChange", val);//tab this.$emit("currenTabsChange", val);//tab
this.zdyValue = val.name // this.zdyValue = val.name
this.dropdownTabsData.forEach( item => { this.dropdownTabsData.forEach( item => {
if (item.name == val.name) { if (item.name == val.name) {
let parent = this.$parent let parent = this.$parent
@ -582,12 +612,12 @@ export default {
// //
parent.firstTabs = val.name parent.firstTabs = val.name
if (val.name == 'xq' || val.name == 'mx' || val.name == 'hz') { if (val.name == 'xq' || val.name == 'mx' || val.name == 'hz') {
this.zdyTableColumns = [] // this.zdyTableColumns = []
this.otherData = [] // this.otherData = []
parent.tableLoading = false parent.tableLoading = false
} else { } else {
this.zdyTableColumns = [] // this.zdyTableColumns = []
this.otherData = [] // this.otherData = []
// this.firstTabs = val.name // this.firstTabs = val.name
// tab // tab
// if (item.functionName == 'getListByItemcode') { // if (item.functionName == 'getListByItemcode') {

7
PC/UI.WinIn.FasterZ.Job/src/components/filterForDetailPage/index.vue

@ -129,6 +129,7 @@
import { mixins } from "@/mixins/mixins"; import { mixins } from "@/mixins/mixins";
import { filterSelectMixins } from '@/mixins/filter-Select' import { filterSelectMixins } from '@/mixins/filter-Select'
import {getListDesById,getPageListForDetail} from "@/api/wms-api" import {getListDesById,getPageListForDetail} from "@/api/wms-api"
import { initApiColumnsForDto } from '@/utils/index'
export default { export default {
name: 'filterForDetailPage', name: 'filterForDetailPage',
mixins: [ mixins: [
@ -204,10 +205,6 @@
data () { data () {
return { return {
dialogShow:true, dialogShow:true,
// URLOption_detailList:allUrlOption[this.$route.name].detailListURL,//-
// URLOption_masterId:allUrlOption[this.$route.name].masterId || 'masterId',//-id
// URLOption_masterName:allUrlOption[this.$route.name].masterName,//-//-title
// URLOption_parent:allUrlOption[this.$route.name].parentURL ? allUrlOption[this.$route.name].parentURL : allUrlOption[this.$route.name].detailURL,//-
currenButtonData: [],// currenButtonData: [],//
operaButtons:[],// operaButtons:[],//
showParentDialog:false,// showParentDialog:false,//
@ -263,7 +260,7 @@
.then(res=>{ .then(res=>{
// //
let _parentName = this.URLOption_detailList.substr(0,this.URLOption_detailList.indexOf('/')) let _parentName = this.URLOption_detailList.substr(0,this.URLOption_detailList.indexOf('/'))
let _Columns = this.initApiColumnsForDto(res.items[0],_parentName) let _Columns = initApiColumnsForDto(res.items[0],_parentName,this)
this.listColumns = this.initTableColumns(_Columns,'detailPage_api') this.listColumns = this.initTableColumns(_Columns,'detailPage_api')
// //
if(res){ if(res){

146
PC/UI.WinIn.FasterZ.Job/src/mixins/TableMixins.js

@ -1,11 +1,13 @@
import i18n from "@/lang"
import { import {
getPageList, getPageList,
getDetailed, getDetailed,
postDelete, postDelete,
ApiTypeDelete ApiTypeDelete
} from '@/api/wms-api' } from '@/api/wms-api'
import { zhApiColumnsLable,firstWordSizeChange } from '@/utils/index' import {
initApiColumnsForDto,
sliceStrEndDelete
} from '@/utils/index'
export const tableMixins = { export const tableMixins = {
data() { data() {
return { return {
@ -103,9 +105,22 @@ export const tableMixins = {
} }
// 编辑 api // 编辑 api
else if (item.name == "editFromApi") { else if (item.name == "editFromApi") {
// this.addEditApiType = 'edit'
// this.editFromApiRowData = row
// this.displayDialog.addEditApiDialog = true;
let _url = this.URLOption_detail ? this.URLOption_detail : this.URLOption_base
this.Loading.tableLoading = true
getDetailed(row.id, _url)
.then(res=>{
this.addEditApiType = 'edit' this.addEditApiType = 'edit'
this.editFromApiRowData = row this.editFromApiRowData = res
this.displayDialog.addEditApiDialog = true; this.displayDialog.addEditApiDialog = true;
this.Loading.tableLoading = false
})
.catch(err=>{
this.Loading.tableLoading = false
})
} }
// 删除 // 删除
else if (item.name == "delete"){ else if (item.name == "delete"){
@ -158,95 +173,6 @@ export const tableMixins = {
// if(detailsTable && detailsTable[this.$route.name])this.apiColumns_DetailsTable = this.initTableColumns(detailsTable[this.$route.name],'detail_api') // if(detailsTable && detailsTable[this.$route.name])this.apiColumns_DetailsTable = this.initTableColumns(detailsTable[this.$route.name],'detail_api')
// if(detailsPage && detailsPage[this.$route.name])this.apiColumns_DetailsPage = this.initTableColumns(detailsPage[this.$route.name],'detailPage_api') // if(detailsPage && detailsPage[this.$route.name])this.apiColumns_DetailsPage = this.initTableColumns(detailsPage[this.$route.name],'detailPage_api')
// }, // },
// get-dto-column-type接口表头类型初始化
initApiColumnsForDto(list,titleName){
let data = this.$store.getters.dtoColumnTypes
let _coloums = data[titleName].S
let _Columns_Table = []
if(_coloums){
let _data = _coloums.dtoList
_data.forEach(item=>{
// 如果list接口存在数据 ,与list接口返回字段比较处理,list接口存在的话则追加
let _if = firstWordSizeChange(item.name) != 'details'
if(list){
_if = firstWordSizeChange(item.name) in list && firstWordSizeChange(item.name) != 'details'
}
if(_if){
_Columns_Table.push(item)
}
})
}
if(list){
_Columns_Table = _Columns_Table.concat(this.specialAddColumns(list,titleName))
}
return _Columns_Table
},
// 添加特殊字段(api中没有的字段特殊处理)
specialAddColumns(list,titleName){
let _apiName = titleName
let _special_list=[]
// creationTime
if('creationTime' in list){
_special_list.push(
{
"name": "CreationTime",
"apiBaseType": "datetime",
"baseApiName": _apiName + 'CreationTime',
"label": zhApiColumnsLable(_apiName + 'CreationTime') || i18n.t('columNames.CreationTime'),
"prop": "creationTime",
}
)
}
// creatorId
if('creatorId' in list){
_special_list.push(
{
"name": "CreatorId",
"apiBaseType": "string",
"baseApiName": _apiName + 'CreatorId',
"label": zhApiColumnsLable(_apiName + 'CreatorId') || i18n.t('columNames.CreatorId'),
"prop": "creatorId",
}
)
}
// lastModificationTime
if('lastModificationTime' in list){
_special_list.push(
{
"name": "LastModificationTime",
"apiBaseType": "datetime",
"baseApiName": _apiName + 'LastModificationTime',
"label": zhApiColumnsLable(_apiName + 'LastModificationTime') || i18n.t('columNames.LastModificationTime'),
"prop": "lastModificationTime",
}
)
}
// lastModifierId
if('lastModifierId' in list){
_special_list.push(
{
"name": "LastModifierId",
"apiBaseType": "string",
"baseApiName": _apiName + 'LastModifierId',
"label": zhApiColumnsLable(_apiName + 'LastModifierId') || i18n.t('columNames.LastModifierId'),
"prop": "lastModifierId",
}
)
}
// tenantId
if('tenantId' in list){
_special_list.push(
{
"name": "TenantId",
"apiBaseType": "string",
"baseApiName": _apiName + 'TenantId',
"label": zhApiColumnsLable(_apiName + 'TenantId') || i18n.t('columNames.TenantId'),
"prop": "tenantId",
}
)
}
return _special_list
},
//渲染数据 //渲染数据
paging(callback,repeat) { paging(callback,repeat) {
this.Loading.tableLoading = true; this.Loading.tableLoading = true;
@ -255,7 +181,7 @@ export const tableMixins = {
.then(res=>{ .then(res=>{
// 表头处理 // 表头处理
let _list = res.items && res.items.length > 0 ? res.items[0] : null let _list = res.items && res.items.length > 0 ? res.items[0] : null
let _Columns = this.initApiColumnsForDto(_list,this.$route.name) let _Columns = initApiColumnsForDto(_list,this.$route.name,this)
this.apiColumns_Table = this.initTableColumns(_Columns) this.apiColumns_Table = this.initTableColumns(_Columns)
this.apiColumns_DesTions = _Columns this.apiColumns_DesTions = _Columns
// 页面数据处理 // 页面数据处理
@ -312,8 +238,36 @@ export const tableMixins = {
this.Loading.DrawerLoading = true this.Loading.DrawerLoading = true
this.displayDialog.detailsDialog = true; this.displayDialog.detailsDialog = true;
let _url = this.URLOption_detail ? this.URLOption_detail : this.URLOption_base let _url = this.URLOption_detail ? this.URLOption_detail : this.URLOption_base
// 有主表信息子表(表头处理)
if(!this.URLOption.isMaster && this.URLOption.hasDetail){
let _showMasterUrl = this.URLOption.mainShowMasterUrl
if(!this.URLOption.mainShowMasterUrl){
_showMasterUrl = sliceStrEndDelete(this.URLOption_detail,'-Detail')
}
Promise.all([
getDetailed(val.id, _url),
getDetailed(val[this.URLOption.mainShowMasterId || this.URLOption.masterId || this.allUrlOption.defalutMasterId || 'masterId'], _showMasterUrl)
]).then((res) => {
let _allRes = JSON.parse(JSON.stringify(res[0]))
_allRes.masterInfo = res[1]
this.initInlineHttpBack(_allRes)
}).catch(()=>{
this.Loading.DrawerLoading = false
})
}
// 没有主表信息
else{
getDetailed(val.id, _url) getDetailed(val.id, _url)
.then(res=>{ .then(res=>{
this.initInlineHttpBack(res)
})
.catch(err=>{
this.Loading.DrawerLoading = false
})
}
},
// 查看详情获取返回值后处理
initInlineHttpBack(res){
// 打印使用的全部数据存储 // 打印使用的全部数据存储
this.tableDataDetails = JSON.parse(JSON.stringify(res)) this.tableDataDetails = JSON.parse(JSON.stringify(res))
// 数据处理 // 数据处理
@ -321,7 +275,7 @@ export const tableMixins = {
if (res.details) { if (res.details) {
// 表头处理 // 表头处理
let _parentName = this.URLOption_detailList.substr(0,this.URLOption_detailList.indexOf('/')) let _parentName = this.URLOption_detailList.substr(0,this.URLOption_detailList.indexOf('/'))
this.apiColumns_DetailsTable = this.initTableColumns(this.initApiColumnsForDto(res.details[0],_parentName),'detail_api') this.apiColumns_DetailsTable = this.initTableColumns(initApiColumnsForDto(res.details[0],_parentName,this),'detail_api')
if(this.$refs.currenDrawer_Ref){ if(this.$refs.currenDrawer_Ref){
this.$refs.currenDrawer_Ref.getDetailList(res,()=>{ this.$refs.currenDrawer_Ref.getDetailList(res,()=>{
this.inlineDialogCallback() this.inlineDialogCallback()
@ -332,10 +286,6 @@ export const tableMixins = {
}else{ }else{
this.Loading.DrawerLoading = false this.Loading.DrawerLoading = false
} }
})
.catch(err=>{
this.Loading.DrawerLoading = false
})
}, },
// 前端分页处理 // 前端分页处理
// detailListPageFromFE(data){ // detailListPageFromFE(data){

6
PC/UI.WinIn.FasterZ.Job/src/mixins/mixins.js

@ -8,6 +8,9 @@ import { getLoginName } from "@/utils/auth"
export const mixins = { export const mixins = {
data() { data() {
return { return {
allUrlOption:allUrlOption,
// 当前路由配置
URLOption:allUrlOption[this.$route.name],
//主表-列表 //主表-列表
URLOption_base:allUrlOption[this.$route.name].baseURL, URLOption_base:allUrlOption[this.$route.name].baseURL,
//主表-明细 //主表-明细
@ -23,7 +26,7 @@ export const mixins = {
//明细-查看主表 //明细-查看主表
URLOption_parent:allUrlOption[this.$route.name].parentURL ? allUrlOption[this.$route.name].parentURL : allUrlOption[this.$route.name].detailURL, URLOption_parent:allUrlOption[this.$route.name].parentURL ? allUrlOption[this.$route.name].parentURL : allUrlOption[this.$route.name].detailURL,
//明细-查看主表的连接id //明细-查看主表的连接id
URLOption_masterId:allUrlOption[this.$route.name].masterId || 'masterId', URLOption_masterId:allUrlOption[this.$route.name].masterId || allUrlOption.defalutMasterId || 'masterId',
//明细-查看主表的连接title名称 //明细-查看主表的连接title名称
URLOption_masterName:allUrlOption[this.$route.name].masterName, URLOption_masterName:allUrlOption[this.$route.name].masterName,
// 列表-明细-查看详情标题名称 // 列表-明细-查看详情标题名称
@ -65,7 +68,6 @@ export const mixins = {
name: "determine" name: "determine"
}, },
], ],
addEditApiType: null,//Api新增编辑方式(add,edit) addEditApiType: null,//Api新增编辑方式(add,edit)
editFromApiRowData:null,//Api编辑方式的默认值 editFromApiRowData:null,//Api编辑方式的默认值
} }

56
PC/UI.WinIn.FasterZ.Job/src/utils/baseData/urlOption.js

@ -1,3 +1,6 @@
// 默认配置
export const defalutMasterId = 'masterID'
// 示例数据 // 示例数据
export const TestSchool = { export const TestSchool = {
baseURL:'TestSchool/base',//主表-列表 baseURL:'TestSchool/base',//主表-列表
@ -17,129 +20,162 @@ export const TestSchool = {
export const ExportCustomUserSetting = { export const ExportCustomUserSetting = {
baseURL:'ExportCustomUserSetting/base',//主表-列表 baseURL:'ExportCustomUserSetting/base',//主表-列表
detailURL:'app/export-custom-user-setting',//主表-明细 + 明细-查看主表 detailURL:'app/export-custom-user-setting',//主表-明细 + 明细-查看主表
hasDetail:false,
} }
export const CheckJob = { export const CheckJob = {
baseURL:'CheckJob/base',//主表-列表 baseURL:'CheckJob/base',//主表-列表
detailURL:'app/check-job',//主表-明细 + 明细-查看主表 detailURL:'app/check-job',//主表-明细 + 明细-查看主表
detailListURL:'CheckJobDetail/base',//明细-列表, detailListURL:'CheckJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId hasDetail:true,
isMaster:true
} }
export const CheckJobDetail = { export const CheckJobDetail = {
baseURL:'CheckJobDetail/base',//主表-列表 baseURL:'CheckJobDetail/base',//主表-列表
detailURL:'app/check-job-detail',//主表-明细 + 明细-查看主表 detailURL:'app/check-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
} }
export const CountJob = { export const CountJob = {
baseURL:'CountJob/base',//主表-列表 baseURL:'CountJob/base',//主表-列表
detailURL:'app/count-job',//主表-明细 + 明细-查看主表 detailURL:'app/count-job',//主表-明细 + 明细-查看主表
detailListURL:'CountJobDetail/base',//明细-列表, detailListURL:'CountJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId hasDetail:true,
isMaster:true
} }
export const CountJobDetail = { export const CountJobDetail = {
baseURL:'CountJobDetail/base',//主表-列表 baseURL:'CountJobDetail/base',//主表-列表
detailURL:'app/count-job-detail',//主表-明细 + 明细-查看主表 detailURL:'app/count-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
} }
export const DeliverJob = { export const DeliverJob = {
baseURL:'DeliverJob/base',//主表-列表 baseURL:'DeliverJob/base',//主表-列表
detailURL:'app/deliver-job',//主表-明细 + 明细-查看主表 detailURL:'app/deliver-job',//主表-明细 + 明细-查看主表
detailListURL:'DeliverJobDetail/base',//明细-列表, detailListURL:'DeliverJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId hasDetail:true,
isMaster:true
} }
export const DeliverJobDetail = { export const DeliverJobDetail = {
baseURL:'DeliverJobDetail/base',//主表-列表 baseURL:'DeliverJobDetail/base',//主表-列表
detailURL:'app/deliver-job-detail',//主表-明细 + 明细-查看主表 detailURL:'app/deliver-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
} }
export const InspectJob = { export const InspectJob = {
baseURL:'InspectJob/base',//主表-列表 baseURL:'InspectJob/base',//主表-列表
detailURL:'app/inspect-job',//主表-明细 + 明细-查看主表 detailURL:'app/inspect-job',//主表-明细 + 明细-查看主表
detailListURL:'InspectJobDetail/base',//明细-列表, detailListURL:'InspectJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId hasDetail:true,
isMaster:true
} }
export const InspectJobDetail = { export const InspectJobDetail = {
baseURL:'InspectJobDetail/base',//主表-列表 baseURL:'InspectJobDetail/base',//主表-列表
detailURL:'app/inspect-job-detail',//主表-明细 + 明细-查看主表 detailURL:'app/inspect-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
} }
export const InspectJobSummaryDetail = { export const InspectJobSummaryDetail = {
baseURL:'InspectJobSummaryDetail/base',//主表-列表 baseURL:'InspectJobSummaryDetail/base',//主表-列表
detailURL:'app/inspect-job-summary-detail',//主表-明细 + 明细-查看主表 detailURL:'app/inspect-job-summary-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
} }
export const IssueJob = { export const IssueJob = {
baseURL:'IssueJob/base',//主表-列表 baseURL:'IssueJob/base',//主表-列表
detailURL:'app/issue-job',//主表-明细 + 明细-查看主表 detailURL:'app/issue-job',//主表-明细 + 明细-查看主表
detailListURL:'IssueJobDetail/base',//明细-列表, detailListURL:'IssueJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId hasDetail:true,
isMaster:true
} }
export const IssueJobDetail = { export const IssueJobDetail = {
baseURL:'IssueJobDetail/base',//主表-列表 baseURL:'IssueJobDetail/base',//主表-列表
detailURL:'app/issue-job-detail',//主表-明细 + 明细-查看主表 detailURL:'app/issue-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
} }
export const JisDeliverJob = { export const JisDeliverJob = {
baseURL:'JisDeliverJob/base',//主表-列表 baseURL:'JisDeliverJob/base',//主表-列表
detailURL:'app/jis-deliver-job',//主表-明细 + 明细-查看主表 detailURL:'app/jis-deliver-job',//主表-明细 + 明细-查看主表
detailListURL:'JisDeliverJobDetail/base',//明细-列表, detailListURL:'JisDeliverJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId hasDetail:true,
isMaster:true
} }
export const JisDeliverJobDetail = { export const JisDeliverJobDetail = {
baseURL:'JisDeliverJobDetail/base',//主表-列表 baseURL:'JisDeliverJobDetail/base',//主表-列表
detailURL:'app/jis-deliver-job-detail',//主表-明细 + 明细-查看主表 detailURL:'app/jis-deliver-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
} }
export const ProductReceiveJob = { export const ProductReceiveJob = {
baseURL:'ProductReceiveJob/base',//主表-列表 baseURL:'ProductReceiveJob/base',//主表-列表
detailURL:'app/product-receive-job',//主表-明细 + 明细-查看主表 detailURL:'app/product-receive-job',//主表-明细 + 明细-查看主表
detailListURL:'ProductReceiveJobDetail/base',//明细-列表, detailListURL:'ProductReceiveJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId hasDetail:true,
isMaster:true
} }
export const ProductReceiveJobDetail = { export const ProductReceiveJobDetail = {
baseURL:'ProductReceiveJobDetail/base',//主表-列表 baseURL:'ProductReceiveJobDetail/base',//主表-列表
detailURL:'app/product-receive-job-detail',//主表-明细 + 明细-查看主表 detailURL:'app/product-receive-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
} }
export const PurchaseReceiptJob = { export const PurchaseReceiptJob = {
baseURL:'PurchaseReceiptJob/base',//主表-列表 baseURL:'PurchaseReceiptJob/base',//主表-列表
detailURL:'app/purchase-receipt-job',//主表-明细 + 明细-查看主表 detailURL:'app/purchase-receipt-job',//主表-明细 + 明细-查看主表
detailListURL:'PurchaseReceiptJobDetail/base',//明细-列表, detailListURL:'PurchaseReceiptJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId hasDetail:true,
isMaster:true
} }
export const PurchaseReceiptJobDetail = { export const PurchaseReceiptJobDetail = {
baseURL:'PurchaseReceiptJobDetail/base',//主表-列表 baseURL:'PurchaseReceiptJobDetail/base',//主表-列表
detailURL:'app/purchase-receipt-job-detail',//主表-明细 + 明细-查看主表 detailURL:'app/purchase-receipt-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
} }
export const PurchaseReturnJob = { export const PurchaseReturnJob = {
baseURL:'PurchaseReturnJob/base',//主表-列表 baseURL:'PurchaseReturnJob/base',//主表-列表
detailURL:'app/purchase-return-job',//主表-明细 + 明细-查看主表 detailURL:'app/purchase-return-job',//主表-明细 + 明细-查看主表
detailListURL:'PurchaseReturnJobDetail/base',//明细-列表, detailListURL:'PurchaseReturnJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId hasDetail:true,
isMaster:true
} }
export const PurchaseReturnJobDetail = { export const PurchaseReturnJobDetail = {
baseURL:'PurchaseReturnJobDetail/base',//主表-列表 baseURL:'PurchaseReturnJobDetail/base',//主表-列表
detailURL:'app/purchase-return-job-detail',//主表-明细 + 明细-查看主表 detailURL:'app/purchase-return-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
} }
export const PutawayJob = { export const PutawayJob = {
baseURL:'PutawayJob/base',//主表-列表 baseURL:'PutawayJob/base',//主表-列表
detailURL:'app/putaway-job',//主表-明细 + 明细-查看主表 detailURL:'app/putaway-job',//主表-明细 + 明细-查看主表
detailListURL:'PutawayJobDetail/base',//明细-列表, detailListURL:'PutawayJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId hasDetail:true,
isMaster:true
} }
export const PutawayJobDetail = { export const PutawayJobDetail = {
baseURL:'PutawayJobDetail/base',//主表-列表 baseURL:'PutawayJobDetail/base',//主表-列表
detailURL:'app/putaway-job-detail',//主表-明细 + 明细-查看主表 detailURL:'app/putaway-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
} }

98
PC/UI.WinIn.FasterZ.Job/src/utils/index.js

@ -3,6 +3,7 @@
*/ */
import {fileStorage, getPageList } from '@/api/wms-api' import {fileStorage, getPageList } from '@/api/wms-api'
import store from '@/store' import store from '@/store'
import i18n from "@/lang"
/** /**
* @param {string} url * @param {string} url
@ -429,3 +430,100 @@
} }
} }
// get-dto-column-type接口表头类型初始化
export function initApiColumnsForDto (list,titleName,that) {
let data = that.$store.getters.dtoColumnTypes
let _coloums = data[titleName].S
let _Columns_Table = []
if(_coloums){
let _data = _coloums.dtoList
_data.forEach(item=>{
// 如果list接口存在数据 ,与list接口返回字段比较处理,list接口存在的话则追加
let _if = firstWordSizeChange(item.name) != 'details'
if(list){
_if = firstWordSizeChange(item.name) in list && firstWordSizeChange(item.name) != 'details'
}
if(_if){
_Columns_Table.push(item)
}
})
}
if(list){
_Columns_Table = _Columns_Table.concat(specialAddColumns(list,titleName))
}
return _Columns_Table
}
// 特殊字段转义处理(api中没有的字段特殊处理)
export function specialAddColumns(list,titleName){
let _apiName = titleName
let _special_list=[]
// creationTime
if('creationTime' in list){
_special_list.push(
{
"name": "CreationTime",
"apiBaseType": "datetime",
"baseApiName": _apiName + 'CreationTime',
"label": zhApiColumnsLable(_apiName + 'CreationTime') || i18n.t('columNames.CreationTime'),
"prop": "creationTime",
}
)
}
// creatorId
if('creatorId' in list){
_special_list.push(
{
"name": "CreatorId",
"apiBaseType": "string",
"baseApiName": _apiName + 'CreatorId',
"label": zhApiColumnsLable(_apiName + 'CreatorId') || i18n.t('columNames.CreatorId'),
"prop": "creatorId",
}
)
}
// lastModificationTime
if('lastModificationTime' in list){
_special_list.push(
{
"name": "LastModificationTime",
"apiBaseType": "datetime",
"baseApiName": _apiName + 'LastModificationTime',
"label": zhApiColumnsLable(_apiName + 'LastModificationTime') || i18n.t('columNames.LastModificationTime'),
"prop": "lastModificationTime",
}
)
}
// lastModifierId
if('lastModifierId' in list){
_special_list.push(
{
"name": "LastModifierId",
"apiBaseType": "string",
"baseApiName": _apiName + 'LastModifierId',
"label": zhApiColumnsLable(_apiName + 'LastModifierId') || i18n.t('columNames.LastModifierId'),
"prop": "lastModifierId",
}
)
}
// tenantId
if('tenantId' in list){
_special_list.push(
{
"name": "TenantId",
"apiBaseType": "string",
"baseApiName": _apiName + 'TenantId',
"label": zhApiColumnsLable(_apiName + 'TenantId') || i18n.t('columNames.TenantId'),
"prop": "tenantId",
}
)
}
return _special_list
}
// 从字段中删除最后某字段
export function sliceStrEndDelete(str,deleteStr){
let _d_l = str.length - deleteStr.length
return str.slice(0,_d_l)
}
Loading…
Cancel
Save