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位
<validType>+<pointNumberFixed>示例:
{ 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"
>
<template slot-scope="scope">
<!-- 详情 -->
<curren-descriptions
border
v-if="scope.value == 'xq'"
@ -59,6 +60,17 @@
:propsData="propsData"
>
</curren-descriptions>
<!-- 主表信息 -->
<curren-descriptions
border
v-if="scope.value == 'masterInfo'"
:column="column"
:direction="direction"
:colon="false"
:tabsDesTions="masterColums"
:propsData="propsData.masterInfo"
>
</curren-descriptions>
<!-- 明细 包含分页 头部按钮等 -->
<tablePagination
ref="tablePaginationForMX_Ref"
@ -104,11 +116,12 @@
</template>
</umyTable>
<!-- 自定义扩展 -->
<umyTable
<!-- <umyTable
v-if="
scope.value == zdyValue &&
scope.value != 'xq' &&
scope.value != 'mx' &&
scope.value != 'masterInfo' &&
scope.value != 'hz' &&
scope.value != 'zwlcj'
"
@ -127,7 +140,7 @@
<template>
<slot></slot>
</template>
</umyTable>
</umyTable> -->
</template>
</curren-tabs>
</div>
@ -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.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){
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:[
{
@ -376,9 +402,13 @@ export default {
},
totalCountForDetail:0,
//-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,
//
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') {

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

@ -129,6 +129,7 @@
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: [
@ -204,10 +205,6 @@
data () {
return {
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: [],//
operaButtons:[],//
showParentDialog:false,//
@ -263,7 +260,7 @@
.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){

146
PC/InterFace.Dash/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 {
@ -103,9 +105,22 @@ export const tableMixins = {
}
// 编辑 api
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.editFromApiRowData = row
this.editFromApiRowData = res
this.displayDialog.addEditApiDialog = true;
this.Loading.tableLoading = false
})
.catch(err=>{
this.Loading.tableLoading = false
})
}
// 删除
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(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;
@ -255,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
// 页面数据处理
@ -312,8 +238,36 @@ export const tableMixins = {
this.Loading.DrawerLoading = true
this.displayDialog.detailsDialog = true;
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)
.then(res=>{
this.initInlineHttpBack(res)
})
.catch(err=>{
this.Loading.DrawerLoading = false
})
}
},
// 查看详情获取返回值后处理
initInlineHttpBack(res){
// 打印使用的全部数据存储
this.tableDataDetails = JSON.parse(JSON.stringify(res))
// 数据处理
@ -321,7 +275,7 @@ export const tableMixins = {
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')
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()
@ -332,10 +286,6 @@ export const tableMixins = {
}else{
this.Loading.DrawerLoading = false
}
})
.catch(err=>{
this.Loading.DrawerLoading = false
})
},
// 前端分页处理
// detailListPageFromFE(data){

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

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

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

@ -1,4 +1,6 @@
// 添加页面需要配置位置
// 默认配置
export const defalutMasterId = 'masterId'
// 示例数据
export const TestSchool = {
baseURL:'TestSchool/base',//主表-列表
@ -16,6 +18,7 @@ export const ExportCustomUserSetting = {
// baseURL:'get-by-user-and-table-name',//主表-列表
baseURL:'ExportCustomUserSetting/base',//主表-列表
detailURL:'app/export-custom-user-setting',//主表-明细 + 明细-查看主表
hasDetail:false,
}
// 接口看板管理-AsnMstr【主子表】
@ -25,19 +28,23 @@ export const AsnMstr = {
// detailInfoName:'asnNbr',//主表-明细查看详情的title名称
detailListURL:'AsnDet/base',//明细-列表,
masterId:'asnMstrId',//明细获取主表信息的masterId
masterName:'asnNbr'//明细获取主表信息的title名称
masterName:'asnNbr',//明细获取主表信息的title名称
hasDetail:true,
isMaster:true
}
// 接口看板管理-IncomingData
export const IncomingData = {
baseURL:'IncomingData/base',//主表-列表
detailURL:'app/incoming-data',//主表-明细 + 明细-查看主表
hasDetail:false
}
// 接口看板管理-IncomingDataHistory
export const IncomingDataHistory = {
baseURL:'IncomingDataHistory/base',//主表-列表
detailURL:'app/incoming-data-history',//主表-明细 + 明细-查看主表
hasDetail:false
}
@ -45,60 +52,70 @@ export const IncomingDataHistory = {
export const OutgoingData = {
baseURL:'OutgoingData/base',//主表-列表
detailURL:'app/outgoing-data',//主表-明细 + 明细-查看主表
hasDetail:false
}
// 接口看板管理-OutgoingDataHistory
export const OutgoingDataHistory = {
baseURL:'OutgoingDataHistory/base',//主表-列表
detailURL:'app/outgoing-data-history',//主表-明细 + 明细-查看主表
hasDetail:false
}
// 接口看板管理-MessageReceive
export const MessageReceive = {
baseURL:'MessageReceive/base',//主表-列表
detailURL:'app/message-receive',//主表-明细 + 明细-查看主表
hasDetail:false
}
// 接口看板管理-MesProductL7PartsNote
export const MesProductL7PartsNote = {
baseURL:'MesProductL7PartsNote/base',//主表-列表
detailURL:'app/mes-product-l7Parts-note',//主表-明细 + 明细-查看主表
hasDetail:false
}
// 接口看板管理-Bom
export const Bom = {
baseURL:'Bom/base',//主表-列表
detailURL:'app/bom',//主表-明细 + 明细-查看主表
hasDetail:false
}
// 接口看板管理-CustPart
export const CustPart = {
baseURL:'CustPart/base',//主表-列表
detailURL:'app/cust-part',//主表-明细 + 明细-查看主表
hasDetail:false
}
// 接口看板管理-Cust
export const Cust = {
baseURL:'Cust/base',//主表-列表
detailURL:'app/cust',//主表-明细 + 明细-查看主表
hasDetail:false
}
// 接口看板管理-Inventory
export const Inventory = {
baseURL:'Inventory/base',//主表-列表
detailURL:'app/inventory',//主表-明细 + 明细-查看主表
hasDetail:false
}
// 接口看板管理-Loc
export const Loc = {
baseURL:'Loc/base',//主表-列表
detailURL:'app/loc',//主表-明细 + 明细-查看主表
hasDetail:false
}
// 接口看板管理-Part
export const Part = {
baseURL:'Part/base',//主表-列表
detailURL:'app/part',//主表-明细 + 明细-查看主表
hasDetail:false
}
// 接口看板管理-PoMstr【主子表】
@ -108,19 +125,23 @@ export const PoMstr = {
// detailInfoName:'asnNbr',//主表-明细查看详情的title名称
detailListURL:'PoDet/base',//明细-列表,
masterId:'poMstrId',//明细获取主表信息的masterId
masterName:'poNbr'//明细获取主表信息的title名称
masterName:'poNbr',//明细获取主表信息的title名称
hasDetail:true,
isMaster:true
}
// 接口看板管理-PrhHist
export const PrhHist = {
baseURL:'PrhHist/base',//主表-列表
detailURL:'app/prh-hist',//主表-明细 + 明细-查看主表
hasDetail:false
}
// 接口看板管理-ProdLine
export const ProdLine = {
baseURL:'ProdLine/base',//主表-列表
detailURL:'app/prod-line',//主表-明细 + 明细-查看主表
hasDetail:false
}
// 接口看板管理-ReceiptMstr【主子表】
@ -131,6 +152,8 @@ export const ReceiptMstr = {
detailListURL:'ReceiptDet/base',//明细-列表,
masterId:'receiptMstrId',//明细获取主表信息的masterId
// masterName:'receiptMstrAsnNbr'//明细获取主表信息的title名称
hasDetail:true,
isMaster:true
}
// 接口看板管理-ReturnMstr【主子表】
@ -141,23 +164,28 @@ export const ReturnMstr = {
detailListURL:'ReturnDet/base',//明细-列表,
masterId:'returnMstrId',//明细获取主表信息的masterId
// masterName:'returnMstrAsnNbr'//明细获取主表信息的title名称
hasDetail:true,
isMaster:true
}
// 接口看板管理-VendPart
export const VendPart = {
baseURL:'VendPart/base',//主表-列表
detailURL:'app/vend-part',//主表-明细 + 明细-查看主表
hasDetail:false
}
// 接口看板管理-Vend
export const Vend = {
baseURL:'Vend/base',//主表-列表
detailURL:'app/vend',//主表-明细 + 明细-查看主表
hasDetail:false
}
// 接口看板管理-SodDet
export const SodDet = {
baseURL:'SodDet/base',//主表-列表
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 store from '@/store'
import i18n from "@/lang"
/**
* @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位
<validType>+<pointNumberFixed>示例:
{ 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"
>
<template slot-scope="scope">
<!-- 详情 -->
<curren-descriptions
border
v-if="scope.value == 'xq'"
@ -59,6 +60,17 @@
:propsData="propsData"
>
</curren-descriptions>
<!-- 主表信息 -->
<curren-descriptions
border
v-if="scope.value == 'masterInfo'"
:column="column"
:direction="direction"
:colon="false"
:tabsDesTions="masterColums"
:propsData="propsData.masterInfo"
>
</curren-descriptions>
<!-- 明细 包含分页 头部按钮等 -->
<tablePagination
ref="tablePaginationForMX_Ref"
@ -104,11 +116,12 @@
</template>
</umyTable>
<!-- 自定义扩展 -->
<umyTable
<!-- <umyTable
v-if="
scope.value == zdyValue &&
scope.value != 'xq' &&
scope.value != 'mx' &&
scope.value != 'masterInfo' &&
scope.value != 'hz' &&
scope.value != 'zwlcj'
"
@ -127,7 +140,7 @@
<template>
<slot></slot>
</template>
</umyTable>
</umyTable> -->
</template>
</curren-tabs>
</div>
@ -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.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){
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:[
{
@ -376,9 +402,13 @@ export default {
},
totalCountForDetail:0,
//-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,
//
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') {

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

@ -129,6 +129,7 @@
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: [
@ -204,10 +205,6 @@
data () {
return {
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: [],//
operaButtons:[],//
showParentDialog:false,//
@ -263,7 +260,7 @@
.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){

146
PC/UI.WinIn.FasterZ.Inventory/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 {
@ -103,9 +105,22 @@ export const tableMixins = {
}
// 编辑 api
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.editFromApiRowData = row
this.editFromApiRowData = res
this.displayDialog.addEditApiDialog = true;
this.Loading.tableLoading = false
})
.catch(err=>{
this.Loading.tableLoading = false
})
}
// 删除
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(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;
@ -255,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
// 页面数据处理
@ -312,8 +238,36 @@ export const tableMixins = {
this.Loading.DrawerLoading = true
this.displayDialog.detailsDialog = true;
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)
.then(res=>{
this.initInlineHttpBack(res)
})
.catch(err=>{
this.Loading.DrawerLoading = false
})
}
},
// 查看详情获取返回值后处理
initInlineHttpBack(res){
// 打印使用的全部数据存储
this.tableDataDetails = JSON.parse(JSON.stringify(res))
// 数据处理
@ -321,7 +275,7 @@ export const tableMixins = {
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')
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()
@ -332,10 +286,6 @@ export const tableMixins = {
}else{
this.Loading.DrawerLoading = false
}
})
.catch(err=>{
this.Loading.DrawerLoading = false
})
},
// 前端分页处理
// detailListPageFromFE(data){

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

@ -8,6 +8,9 @@ import { getLoginName } from "@/utils/auth"
export const mixins = {
data() {
return {
allUrlOption:allUrlOption,
// 当前路由配置
URLOption:allUrlOption[this.$route.name],
//主表-列表
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,
//明细-查看主表的连接id
URLOption_masterId:allUrlOption[this.$route.name].masterId || 'masterId',
URLOption_masterId:allUrlOption[this.$route.name].masterId || allUrlOption.defalutMasterId || 'masterId',
//明细-查看主表的连接title名称
URLOption_masterName:allUrlOption[this.$route.name].masterName,
// 列表-明细-查看详情标题名称
@ -65,7 +68,6 @@ export const mixins = {
name: "determine"
},
],
addEditApiType: null,//Api新增编辑方式(add,edit)
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 = {
baseURL:'TestSchool/base',//主表-列表
@ -17,58 +20,70 @@ export const TestSchool = {
export const ExportCustomUserSetting = {
baseURL:'ExportCustomUserSetting/base',//主表-列表
detailURL:'app/export-custom-user-setting',//主表-明细 + 明细-查看主表
hasDetail:false,
}
export const Container = {
baseURL:'Container/base',//主表-列表
detailURL:'app/container',//主表-明细 + 明细-查看主表
detailListURL:'ContainerDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId
hasDetail:true,
isMaster:true
}
export const ContainerDetail = {
baseURL:'ContainerDetail/base',//主表-列表
detailURL:'app/container-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
}
export const ErpInventoryBalance = {
baseURL:'ErpInventoryBalance/base',//主表-列表
detailURL:'app/erp-inventory-balance',//主表-明细 + 明细-查看主表
hasDetail:false,
}
export const InventoryBalance = {
baseURL:'InventoryBalance/base',//主表-列表
detailURL:'app/inventory-balance',//主表-明细 + 明细-查看主表
hasDetail:false,
}
export const InventoryOccupied = {
baseURL:'InventoryOccupied/base',//主表-列表
detailURL:'app/inventory-occupied',//主表-明细 + 明细-查看主表
hasDetail:false,
}
export const InventoryPredictable = {
baseURL:'InventoryPredictable/base',//主表-列表
detailURL:'app/inventory-predictable',//主表-明细 + 明细-查看主表
hasDetail:false,
}
export const InventorySnapshot = {
baseURL:'InventorySnapshot/base',//主表-列表
detailURL:'app/inventory-snapshot',//主表-明细 + 明细-查看主表
hasDetail:false,
}
export const InventoryTransaction = {
baseURL:'InventoryTransaction/base',//主表-列表
detailURL:'app/inventory-transaction',//主表-明细 + 明细-查看主表
hasDetail:false,
}
export const InventoryTransferLog = {
baseURL:'InventoryTransferLog/base',//主表-列表
detailURL:'app/inventory-transfer-log',//主表-明细 + 明细-查看主表
hasDetail:false,
}
export const LocationCapacity = {
baseURL:'LocationCapacity/base',//主表-列表
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 store from '@/store'
import i18n from "@/lang"
/**
* @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位
<validType>+<pointNumberFixed>示例:
{ 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"
>
<template slot-scope="scope">
<!-- 详情 -->
<curren-descriptions
border
v-if="scope.value == 'xq'"
@ -59,6 +60,17 @@
:propsData="propsData"
>
</curren-descriptions>
<!-- 主表信息 -->
<curren-descriptions
border
v-if="scope.value == 'masterInfo'"
:column="column"
:direction="direction"
:colon="false"
:tabsDesTions="masterColums"
:propsData="propsData.masterInfo"
>
</curren-descriptions>
<!-- 明细 包含分页 头部按钮等 -->
<tablePagination
ref="tablePaginationForMX_Ref"
@ -104,11 +116,12 @@
</template>
</umyTable>
<!-- 自定义扩展 -->
<umyTable
<!-- <umyTable
v-if="
scope.value == zdyValue &&
scope.value != 'xq' &&
scope.value != 'mx' &&
scope.value != 'masterInfo' &&
scope.value != 'hz' &&
scope.value != 'zwlcj'
"
@ -127,7 +140,7 @@
<template>
<slot></slot>
</template>
</umyTable>
</umyTable> -->
</template>
</curren-tabs>
</div>
@ -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.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){
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:[
{
@ -376,9 +402,13 @@ export default {
},
totalCountForDetail:0,
//-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,
//
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') {

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

@ -129,6 +129,7 @@
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: [
@ -204,10 +205,6 @@
data () {
return {
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: [],//
operaButtons:[],//
showParentDialog:false,//
@ -263,7 +260,7 @@
.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){

146
PC/UI.WinIn.FasterZ.Job/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 {
@ -103,9 +105,22 @@ export const tableMixins = {
}
// 编辑 api
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.editFromApiRowData = row
this.editFromApiRowData = res
this.displayDialog.addEditApiDialog = true;
this.Loading.tableLoading = false
})
.catch(err=>{
this.Loading.tableLoading = false
})
}
// 删除
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(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;
@ -255,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
// 页面数据处理
@ -312,8 +238,36 @@ export const tableMixins = {
this.Loading.DrawerLoading = true
this.displayDialog.detailsDialog = true;
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)
.then(res=>{
this.initInlineHttpBack(res)
})
.catch(err=>{
this.Loading.DrawerLoading = false
})
}
},
// 查看详情获取返回值后处理
initInlineHttpBack(res){
// 打印使用的全部数据存储
this.tableDataDetails = JSON.parse(JSON.stringify(res))
// 数据处理
@ -321,7 +275,7 @@ export const tableMixins = {
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')
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()
@ -332,10 +286,6 @@ export const tableMixins = {
}else{
this.Loading.DrawerLoading = false
}
})
.catch(err=>{
this.Loading.DrawerLoading = false
})
},
// 前端分页处理
// detailListPageFromFE(data){

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

@ -8,6 +8,9 @@ import { getLoginName } from "@/utils/auth"
export const mixins = {
data() {
return {
allUrlOption:allUrlOption,
// 当前路由配置
URLOption:allUrlOption[this.$route.name],
//主表-列表
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,
//明细-查看主表的连接id
URLOption_masterId:allUrlOption[this.$route.name].masterId || 'masterId',
URLOption_masterId:allUrlOption[this.$route.name].masterId || allUrlOption.defalutMasterId || 'masterId',
//明细-查看主表的连接title名称
URLOption_masterName:allUrlOption[this.$route.name].masterName,
// 列表-明细-查看详情标题名称
@ -65,7 +68,6 @@ export const mixins = {
name: "determine"
},
],
addEditApiType: null,//Api新增编辑方式(add,edit)
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 = {
baseURL:'TestSchool/base',//主表-列表
@ -17,129 +20,162 @@ export const TestSchool = {
export const ExportCustomUserSetting = {
baseURL:'ExportCustomUserSetting/base',//主表-列表
detailURL:'app/export-custom-user-setting',//主表-明细 + 明细-查看主表
hasDetail:false,
}
export const CheckJob = {
baseURL:'CheckJob/base',//主表-列表
detailURL:'app/check-job',//主表-明细 + 明细-查看主表
detailListURL:'CheckJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId
hasDetail:true,
isMaster:true
}
export const CheckJobDetail = {
baseURL:'CheckJobDetail/base',//主表-列表
detailURL:'app/check-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
}
export const CountJob = {
baseURL:'CountJob/base',//主表-列表
detailURL:'app/count-job',//主表-明细 + 明细-查看主表
detailListURL:'CountJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId
hasDetail:true,
isMaster:true
}
export const CountJobDetail = {
baseURL:'CountJobDetail/base',//主表-列表
detailURL:'app/count-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
}
export const DeliverJob = {
baseURL:'DeliverJob/base',//主表-列表
detailURL:'app/deliver-job',//主表-明细 + 明细-查看主表
detailListURL:'DeliverJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId
hasDetail:true,
isMaster:true
}
export const DeliverJobDetail = {
baseURL:'DeliverJobDetail/base',//主表-列表
detailURL:'app/deliver-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
}
export const InspectJob = {
baseURL:'InspectJob/base',//主表-列表
detailURL:'app/inspect-job',//主表-明细 + 明细-查看主表
detailListURL:'InspectJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId
hasDetail:true,
isMaster:true
}
export const InspectJobDetail = {
baseURL:'InspectJobDetail/base',//主表-列表
detailURL:'app/inspect-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
}
export const InspectJobSummaryDetail = {
baseURL:'InspectJobSummaryDetail/base',//主表-列表
detailURL:'app/inspect-job-summary-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
}
export const IssueJob = {
baseURL:'IssueJob/base',//主表-列表
detailURL:'app/issue-job',//主表-明细 + 明细-查看主表
detailListURL:'IssueJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId
hasDetail:true,
isMaster:true
}
export const IssueJobDetail = {
baseURL:'IssueJobDetail/base',//主表-列表
detailURL:'app/issue-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
}
export const JisDeliverJob = {
baseURL:'JisDeliverJob/base',//主表-列表
detailURL:'app/jis-deliver-job',//主表-明细 + 明细-查看主表
detailListURL:'JisDeliverJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId
hasDetail:true,
isMaster:true
}
export const JisDeliverJobDetail = {
baseURL:'JisDeliverJobDetail/base',//主表-列表
detailURL:'app/jis-deliver-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
}
export const ProductReceiveJob = {
baseURL:'ProductReceiveJob/base',//主表-列表
detailURL:'app/product-receive-job',//主表-明细 + 明细-查看主表
detailListURL:'ProductReceiveJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId
hasDetail:true,
isMaster:true
}
export const ProductReceiveJobDetail = {
baseURL:'ProductReceiveJobDetail/base',//主表-列表
detailURL:'app/product-receive-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
}
export const PurchaseReceiptJob = {
baseURL:'PurchaseReceiptJob/base',//主表-列表
detailURL:'app/purchase-receipt-job',//主表-明细 + 明细-查看主表
detailListURL:'PurchaseReceiptJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId
hasDetail:true,
isMaster:true
}
export const PurchaseReceiptJobDetail = {
baseURL:'PurchaseReceiptJobDetail/base',//主表-列表
detailURL:'app/purchase-receipt-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
}
export const PurchaseReturnJob = {
baseURL:'PurchaseReturnJob/base',//主表-列表
detailURL:'app/purchase-return-job',//主表-明细 + 明细-查看主表
detailListURL:'PurchaseReturnJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId
hasDetail:true,
isMaster:true
}
export const PurchaseReturnJobDetail = {
baseURL:'PurchaseReturnJobDetail/base',//主表-列表
detailURL:'app/purchase-return-job-detail',//主表-明细 + 明细-查看主表
hasDetail:true,
isMaster:false
}
export const PutawayJob = {
baseURL:'PutawayJob/base',//主表-列表
detailURL:'app/putaway-job',//主表-明细 + 明细-查看主表
detailListURL:'PutawayJobDetail/base',//明细-列表,
masterId:'masterID',//明细获取主表信息的masterId
hasDetail:true,
isMaster:true
}
export const PutawayJobDetail = {
baseURL:'PutawayJobDetail/base',//主表-列表
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 store from '@/store'
import i18n from "@/lang"
/**
* @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