diff --git a/WinIn.FasterZ.Wms.Fe/README.md b/WinIn.FasterZ.Wms.Fe/README.md
index 14ad2d778..e53216fc2 100644
--- a/WinIn.FasterZ.Wms.Fe/README.md
+++ b/WinIn.FasterZ.Wms.Fe/README.md
@@ -137,10 +137,11 @@ export const TestSchool = {
// addURL:null,//新增特殊URL
// editURL:null,//编辑特殊URL
// exportURL:'exportURL',//导出特殊URL
- //有主表的子表单页的主表信息接口,如果不填默认为当前的detailURL去掉‘-Detail’
+
+ //有主表的子表单页的主表信息接口,默认为当前的[detailURL]去掉[-Detail]
// mainShowMasterUrl:null,
- //有主表的子表单页的主表链接参数,如果没有默认为‘masterId’
+ //有主表的子表单页的主表链接参数,默认为[masterId]
// mainShowMasterId:'masterId',
- //有主表的子表单页的主表显示列转义路由,如果没有默认为当前路由去掉‘Detail’
+ //有主表的子表单页的主表路由[用于显示列转义],默认为[当前路由]去掉[Detail]
// masterRoute:null,
}
\ No newline at end of file
diff --git a/WinIn.FasterZ.Wms.Fe/src/components/commonTabel-drawer/index.vue b/WinIn.FasterZ.Wms.Fe/src/components/commonTabel-drawer/index.vue
index e92d1de36..65a73eec6 100644
--- a/WinIn.FasterZ.Wms.Fe/src/components/commonTabel-drawer/index.vue
+++ b/WinIn.FasterZ.Wms.Fe/src/components/commonTabel-drawer/index.vue
@@ -49,6 +49,7 @@
@handleClick="handleClick"
>
+
+
+
+
-
-
+ -->
@@ -171,6 +184,10 @@ import pagination from "@/components/Pagination"
import rowDrop from "@/components/rowDrop/index.vue"
import * as allUrlOption from '@/utils/baseData/urlOption'
import { LoadingMixins } from "@/mixins/LoadingMixins";
+import {
+ initApiColumnsForDto,
+ sliceStrEndDelete
+} from '@/utils/index'
export default {
name: 'currenTabel-drawer',
components: {
@@ -309,7 +326,8 @@ export default {
// 带有特殊扩展tabs页的
if (this.dropdownTabsData.length !== 0) {
return this.dropdownTabsData
- } else {
+ }
+ else {
// 正常普通 详情,明细,汇总
// if (Object.keys(this.propsData).length != 0) {
if (Object.keys(this.propsData)) {
@@ -317,6 +335,14 @@ export default {
label: "详情",
name: 'xq'
}]
+ if(this.propsData.masterInfo && this.propsData.masterInfo){
+ 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){
this.initDropdownTabsData.push({
@@ -343,9 +369,9 @@ export default {
detailHeaderButton:null,//明细-上方按钮
detailInfoTableData:null,//明细-查看详情弹窗数据
detailInfoTitle:null,//明细-查看详情弹窗title
- otherData:[], // 切换tabs页赋值
- zdyTableColumns:[], // 自定义表头
- zdyValue:'', // 自定义展现值
+ // otherData:[], // 切换tabs页赋值
+ // zdyTableColumns:[], // 自定义表头
+ // zdyValue:'', // 自定义展现值
// firstTabs:'xq',
initDropdownTabsData:[
{
@@ -375,10 +401,14 @@ export default {
MaxResultCount: 20,
},
totalCountForDetail:0,
+ //明细-查看主表的连接id
+ URLOption:allUrlOption[this.$route.name],
//明细-查看主表的连接id
URLOption_masterId:allUrlOption[this.$route.name].masterId || 'masterId',
//明细-列表
URLOption_detailList:allUrlOption[this.$route.name].detailListURL,
+ // 有主表的子表列,主表信息的表头
+ masterColums:null
}
},
methods: {
@@ -574,7 +604,7 @@ export default {
// tabs 切换页
handleClick (val) {
this.$emit("currenTabsChange", val);//父级获取当前的tab内容
- this.zdyValue = val.name
+ // this.zdyValue = val.name
this.dropdownTabsData.forEach( item => {
if (item.name == val.name) {
let parent = this.$parent
@@ -582,12 +612,12 @@ export default {
// 详情 明细 汇总
parent.firstTabs = val.name
if (val.name == 'xq' || val.name == 'mx' || val.name == 'hz') {
- this.zdyTableColumns = []
- this.otherData = []
+ // this.zdyTableColumns = []
+ // this.otherData = []
parent.tableLoading = false
} else {
- this.zdyTableColumns = []
- this.otherData = []
+ // this.zdyTableColumns = []
+ // this.otherData = []
// this.firstTabs = val.name
// 其他自定义tab页
// if (item.functionName == 'getListByItemcode') {
diff --git a/WinIn.FasterZ.Wms.Fe/src/components/filterForDetailPage/index.vue b/WinIn.FasterZ.Wms.Fe/src/components/filterForDetailPage/index.vue
index fc38f427d..8008d7c0d 100644
--- a/WinIn.FasterZ.Wms.Fe/src/components/filterForDetailPage/index.vue
+++ b/WinIn.FasterZ.Wms.Fe/src/components/filterForDetailPage/index.vue
@@ -129,6 +129,7 @@ import { LoadingMixins } from "@/mixins/LoadingMixins";
import { mixins } from "@/mixins/mixins";
import { filterSelectMixins } from '@/mixins/filter-Select'
import {getListDesById,getPageListForDetail} from "@/api/wms-api"
+import { initApiColumnsForDto } from '@/utils/index'
export default {
name: 'filterForDetailPage',
mixins: [
@@ -263,7 +264,7 @@ export default {
.then(res=>{
// 表头处理
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')
// 页面数据处理
if(res){
diff --git a/WinIn.FasterZ.Wms.Fe/src/components/umyTable/index.vue b/WinIn.FasterZ.Wms.Fe/src/components/umyTable/index.vue
index e3b606c3b..9c51902c8 100644
--- a/WinIn.FasterZ.Wms.Fe/src/components/umyTable/index.vue
+++ b/WinIn.FasterZ.Wms.Fe/src/components/umyTable/index.vue
@@ -130,7 +130,7 @@
{{itemButton.label}}
@@ -398,6 +399,11 @@ export default {
this.setTableHeightHandle()
},
methods: {
+ // 左侧操作列宽度适应
+ operationLeftColumnWidth(){
+ if(this.buttonOperationList_left.length == 1){return 120}
+ else{return this.buttonOperationList_left.length * 100}
+ },
// 重新渲染表格
doFreshLayout(){
if (this.$refs.multipleTable && this.$refs.multipleTable.doLayout) {
diff --git a/WinIn.FasterZ.Wms.Fe/src/mixins/TableMixins.js b/WinIn.FasterZ.Wms.Fe/src/mixins/TableMixins.js
index 4d46a2ad1..feb5d67ec 100644
--- a/WinIn.FasterZ.Wms.Fe/src/mixins/TableMixins.js
+++ b/WinIn.FasterZ.Wms.Fe/src/mixins/TableMixins.js
@@ -1,11 +1,13 @@
-import i18n from "@/lang"
import {
getPageList,
getDetailed,
postDelete,
ApiTypeDelete
} from '@/api/wms-api'
-import { zhApiColumnsLable,firstWordSizeChange } from '@/utils/index'
+import {
+ initApiColumnsForDto,
+ sliceStrEndDelete
+} from '@/utils/index'
export const tableMixins = {
data() {
return {
@@ -171,95 +173,6 @@ export const tableMixins = {
// 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')
// },
- // 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) {
this.Loading.tableLoading = true;
@@ -268,7 +181,7 @@ export const tableMixins = {
.then(res=>{
// 表头处理
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_DesTions = _Columns
// 页面数据处理
@@ -325,30 +238,54 @@ export const tableMixins = {
this.Loading.DrawerLoading = true
this.displayDialog.detailsDialog = true;
let _url = this.URLOption_detail ? this.URLOption_detail : this.URLOption_base
- getDetailed(val.id, _url)
- .then(res=>{
- // 打印使用的全部数据存储
- this.tableDataDetails = JSON.parse(JSON.stringify(res))
- // 数据处理
- this.propsData = res
- if (res.details) {
- // 表头处理
- let _parentName = this.URLOption_detailList.substr(0,this.URLOption_detailList.indexOf('/'))
- this.apiColumns_DetailsTable = this.initTableColumns(this.initApiColumnsForDto(res.details[0],_parentName),'detail_api')
- if(this.$refs.currenDrawer_Ref){
- this.$refs.currenDrawer_Ref.getDetailList(res,()=>{
- this.inlineDialogCallback()
- },()=>{
- this.Loading.DrawerLoading = false
- })
- }
- }else{
- this.Loading.DrawerLoading = false
- }
- })
- .catch(err=>{
+ // 有主表信息子表(表头处理)
+ 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 || '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)
+ .then(res=>{
+ this.initInlineHttpBack(res)
+ })
+ .catch(err=>{
+ this.Loading.DrawerLoading = false
+ })
+ }
+ },
+ // 查看详情获取返回值后处理
+ initInlineHttpBack(res){
+ // 打印使用的全部数据存储
+ this.tableDataDetails = JSON.parse(JSON.stringify(res))
+ // 数据处理
+ this.propsData = res
+ if (res.details) {
+ // 表头处理
+ let _parentName = this.URLOption_detailList.substr(0,this.URLOption_detailList.indexOf('/'))
+ this.apiColumns_DetailsTable = this.initTableColumns(initApiColumnsForDto(res.details[0],_parentName,this),'detail_api')
+ if(this.$refs.currenDrawer_Ref){
+ this.$refs.currenDrawer_Ref.getDetailList(res,()=>{
+ this.inlineDialogCallback()
+ },()=>{
+ this.Loading.DrawerLoading = false
+ })
+ }
+ }else{
+ this.Loading.DrawerLoading = false
+ }
},
// 前端分页处理
// detailListPageFromFE(data){
diff --git a/WinIn.FasterZ.Wms.Fe/src/mixins/mixins.js b/WinIn.FasterZ.Wms.Fe/src/mixins/mixins.js
index 7f8b689e0..996fdd16f 100644
--- a/WinIn.FasterZ.Wms.Fe/src/mixins/mixins.js
+++ b/WinIn.FasterZ.Wms.Fe/src/mixins/mixins.js
@@ -8,6 +8,8 @@ import { getLoginName } from "@/utils/auth"
export const mixins = {
data() {
return {
+ // 当前路由配置
+ URLOption:allUrlOption[this.$route.name],
//主表-列表
URLOption_base:allUrlOption[this.$route.name].baseURL,
//主表-明细
diff --git a/WinIn.FasterZ.Wms.Fe/src/utils/index.js b/WinIn.FasterZ.Wms.Fe/src/utils/index.js
index 2c428cbee..c81e4f7c1 100644
--- a/WinIn.FasterZ.Wms.Fe/src/utils/index.js
+++ b/WinIn.FasterZ.Wms.Fe/src/utils/index.js
@@ -3,6 +3,7 @@
*/
import {fileStorage, getPageList } from '@/api/wms-api'
import store from '@/store'
+ import i18n from "@/lang"
/**
* @param {string} url
@@ -428,4 +429,101 @@
return str.substring(0,1).toUpperCase() + str.substring(1,str.length);
}
- }
\ No newline at end of file
+ }
+
+// 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)
+}
\ No newline at end of file