Administrator 4 years ago
parent
commit
ccdb2473b4
  1. 3
      vue/src/components/ImportExcel-base/index.vue
  2. 46
      vue/src/components/ImportTxt/index.vue
  3. 20
      vue/src/router/index.js
  4. 44
      vue/src/router/modules/bt_menu.js
  5. 125
      vue/src/router/modules/hq_menu.js
  6. 10
      vue/src/router/modules/vwFisData.js
  7. 181
      vue/src/router/modules/vw_menu.js
  8. 54
      vue/src/router/modules/vw_out_order.js
  9. 28
      vue/src/views/pg-fis/basedate/m100Online/RepetitionMB.vue
  10. 26
      vue/src/views/pg-fis/basedate/m100Online/RepetitionZHB.vue
  11. 222
      vue/src/views/pg-fis/basedate/m100Online/ScrapMB.vue
  12. 214
      vue/src/views/pg-fis/basedate/m100Online/ScrapZHB.vue
  13. 2
      vue/src/views/pg-fis/basedate/m100Online/index.vue
  14. 12
      vue/src/views/pg-fis/basedate/m100Online/normalPritIndex.vue
  15. 34
      vue/src/views/pg-fis/basedate/select/index.vue
  16. 7
      vue/src/views/ux/basedata/index.vue
  17. 2
      vue/src/views/ux/billManage/FisUnSettledDiff/index.vue
  18. 205
      vue/src/views/ux/billManage/InvoiceSettledDetailDiff/index.vue
  19. 5
      vue/src/views/ux/billManage/InvoiceSettledDiff/index.vue
  20. 2
      vue/src/views/ux/billManage/IssuedUnsettled/index.vue
  21. 2
      vue/src/views/ux/billManage/SettleDoorPanel/index.vue
  22. 19
      vue/src/views/ux/billManage/UnInvoiceSettledDetailDiff/index.vue
  23. 19
      vue/src/views/ux/billManage/UnSettleDiffExport/index.vue
  24. 2
      vue/src/views/ux/billManage/UnSettledDiff/index.vue
  25. 7
      vue/src/views/ux/billManage/index.vue
  26. 100
      vue/src/views/ux/billManage/kanBanWithCode/index.vue
  27. 541
      vue/src/views/ux/billManage/kanbanOutOrder/detail.vue
  28. 317
      vue/src/views/ux/billManage/kanbanOutOrder/index.vue
  29. 254
      vue/src/views/ux/billManage/sparePart/index.vue
  30. 616
      vue/src/views/ux/billManage/vwOutOrder/detail.vue
  31. 320
      vue/src/views/ux/billManage/vwOutOrder/index.vue
  32. 594
      vue/src/views/ux/vw/dataInput/hq_bt/index.vue
  33. 594
      vue/src/views/ux/vw/dataInput/hq_f/index.vue
  34. 4
      vue/src/views/ux/vw/dataInput/hq_h/index.vue
  35. 594
      vue/src/views/ux/vw/dataInput/hq_m/index.vue
  36. 6
      vue/static/config.js
  37. 173
      vue/static/tableFieldForSearch.json

3
vue/src/components/ImportExcel-base/index.vue

@ -302,6 +302,7 @@ export default {
scrapClaims: "CP7报废和索赔",
sparePart: "大众备件结算明细",
hqHPlatform: "红旗H平台导入",
hqMPlatform: "红旗M平台导入",
bomdatabase: "产品结构BOM",
prebatch: "预批量",
secondaryPriceRatio: "二配结算价格比例",
@ -328,7 +329,7 @@ export default {
scrapClaims: "/api/settleaccount/ScrapClaims/ExcelImport", //CP7
sparePart: "/api/settleaccount/SparePart/ExcelImport", //
hqHPlatform: "/api/settleaccount/HQHPlatform/ExcelImport", //H
hqMPlatform: "/api/settleaccount/HQMPlatform/ExcelImport", //M
bomdatabase: "/api/settleaccount/bom/ExcelImport",
prebatch: "/api/settleaccount/Prebatch/ExcelImport",
secondaryPriceRatio:

46
vue/src/components/ImportTxt/index.vue

@ -151,13 +151,13 @@
<span class="result-info__detail--all"
>{{ this.resultData.successMessage }}
</span>
<el-button
<!-- <el-button
v-if="this.resultData && this.resultData.errSize > 0"
class="result-info__btn--err"
type="text"
@click="downloadErrData"
>下载错误数据</el-button
>
> -->
</p>
</el-card>
</div>
@ -427,7 +427,7 @@ export default {
this.factoryList = [];
// this.listQuery.SkipCount = (this.page - 1) * 500;
this.$axios
.posts("/api/settleaccount/CentralizedControl/openlist")
.posts("/api/newjit/assembly-cfg-erp/import")
.then((response) => {
response.forEach((element) => {
let options = {};
@ -440,25 +440,25 @@ export default {
this.listLoading = false;
});
},
getAllCarModel() {
//
this.carModelList = [];
this.listQueryCustom.SkipCount = (this.page - 1) * 500;
console.log(JSON.stringify(this.listQueryCustom));
this.$axios
.posts("/api/settleaccount/CodeSetting/list", this.listQueryCustom)
.then((response) => {
response.items.forEach((element) => {
let options = {};
options.value = element.value;
options.label = element.description;
this.carModelList.push(options);
});
})
.catch(() => {
this.listLoading = false;
});
},
// getAllCarModel() {
// //
// this.carModelList = [];
// this.listQueryCustom.SkipCount = (this.page - 1) * 500;
// console.log(JSON.stringify(this.listQueryCustom));
// this.$axios
// .posts("/api/settleaccount/CodeSetting/list", this.listQueryCustom)
// .then((response) => {
// response.items.forEach((element) => {
// let options = {};
// options.value = element.value;
// options.label = element.description;
// this.carModelList.push(options);
// });
// })
// .catch(() => {
// this.listLoading = false;
// });
// },
handleImportExcelClick() {
//
this.fileuploadList = [];
@ -602,7 +602,7 @@ export default {
this.stepList[0].status = "wait";
this.resultData.errTemplate = res; //
this.resultData.errSize = 1; //0
this.resultData.successMessage = "数据导入失败!";
this.resultData.successMessage = res.message;
this.stepsActive = 3;
}
}

20
vue/src/router/index.js

@ -16,6 +16,10 @@ import vwFisDataRouter from './modules/vwFisData'
import wheeldataRouter from './modules/wheeldata'
import vwNoBarcodeRouter from './modules/vwKBNoBarcodedata'
import JobTimeDataRouter from './modules/jobtimedata'
import vwMenudataRouter from './modules/vw_menu'
import hqMenudataRouter from './modules/hq_menu'
import btcarDataRouter from './modules/bt_menu'
import vwOutOrderDataRouter from './modules/vw_out_order'
//import newjitRouter from './modules/newjit-basedata'
import pgfis from './modules/fis'
import pgfisPrint from './modules/fisprint'
@ -86,8 +90,8 @@ export const constantRoutes = [
children: [
{
path: 'dashboard',
component: () => import('@/views/pg-fis/basedate/m100Online/normalPritIndex.vue'),//fis
//component: () => import('@/views/ux/backGroundWork'),
//component: () => import('@/views/pg-fis/basedate/m100Online/normalPritIndex.vue'),//fis
component: () => import('@/views/ux/backGroundWork'),
name: 'Dashboard',
meta: {
title: '系统首页',
@ -170,14 +174,18 @@ export const asyncRoutes = [
/** when your routing map is too long, you can split it into small modules **/
managerRouter,//系统首页
personRouter,//系统管理
//basedataRouter,//基础数据维护
basedataRouter,//基础数据维护
vwMenudataRouter,//大众
hqMenudataRouter,//红旗
vwOutOrderDataRouter,
//btcarDataRouter,//一汽轿车
//vwFisDataRouter,//结算与开票数据导入
//billdataRouter,//销售结算与开票报表
//businessdataRouter,
//wheeldataRouter,//大众看板和备件
pgfisPrint,//排序单打印
pgfis,//派格fis
//JobTimeDataRouter,//后台作业监控
// pgfisPrint,//排序单打印
// pgfis,//派格fis
JobTimeDataRouter,//后台作业监控
// 404 page must be placed at the end !!!
{ path: '*', redirect: '/404', hidden: true }

44
vue/src/router/modules/bt_menu.js

@ -0,0 +1,44 @@
//大众-FIS结算-路由
import Layout from '@/layout'
const btcarDataRouter = {
path: '/cpat',
component: Layout,
redirect: 'pg',
name: 'btcar',
//hidden: true,
meta: {
//requiresAuth: true,
title: '一轿奔腾',
index: 0,
type: 'crm',
icon: '单据导入',
keepAlive: false,
},
children: [
{
path: 'hq-car-platform',
component: () => import('@/views/ux/vw/dataInput/hq_bt'),
name: 'ERPEI',//命名路由
meta: {
title: '一轿奔腾导入',
roles: ['SettleAccount.Boms'],//控制页面角色(可以设置多个角色)
icon: '结算'
}
},
{
path: 'hq-car-platform-export',
component: () => import('@/views/ux/vw/dataInput/hq_m'),
name: 'ERPEI',//命名路由
meta: {
title: '一轿奔腾结算核对输出',
//roles: ['SettleAccount.Boms'],//控制页面角色(可以设置多个角色)
icon: '结算'
}
},
]
}
export default btcarDataRouter

125
vue/src/router/modules/hq_menu.js

@ -0,0 +1,125 @@
import Layout from '@/layout'
const hqMenudataRouter = {
path: '/capt-hq',
component: Layout,
redirect: 'ux/vw/dataInput/hq_h',
name: 'HQData',
meta: {
title: '红旗工厂',
icon: '红旗',
//roles: ['SettleAccount.HQConsigns', 'SettleAccount.HQSpecConsigns', 'SettleAccount.HQKBs', 'SettleAccount.HQSpecKBs'],
keepAlive: false,
},
children: [
{
path: '/import-h-data',
name: 'import-h-data',//命名路由-二级
component: () => import('@/views/ux/vw/dataInput/hq_h'),
redirect: 'ux/vw/dataInput/hq_h',
meta: {
title: 'H平台',
// roles: ['SettleAccount.HQKBs', 'SettleAccount.HQSpecKBs'],
icon: '看板'
},
children: [
{
path: 'hq-H-platform',
component: () => import('@/views/ux/vw/dataInput/hq_h'),
name: 'ERPEI',//命名路由
meta: {
title: '红旗H平台导入',
roles: ['SettleAccount.Boms'],//控制页面角色(可以设置多个角色)
icon: '结算'
}
},
{
path: 'hq-H-platform-export',
component: () => import('@/views/ux/vw/dataInput/ScrapClaims'),
name: 'ScrapClaims',
meta: {
title: 'H平台结算差异输出',
roles: ['SettleAccount.FISs'],
icon: '文件'
}
}
]
},
{
path: '/export-m-data',
component: () => import('@/views/ux/vw/dataInput/hq_m'),
name: 'export-m-data',//命名路由
redirect: '/ux/vw/dataInput/hq_m',
meta: {
title: 'M平台',
//roles: ['SettleAccount.HQConsigns', 'SettleAccount.HQSpecConsigns'],
icon: '结算'
},
children: [
{
path: 'hq-M-platform',
component: () => import('@/views/ux/vw/dataInput/hq_m'),
name: 'ERPEI',//命名路由
meta: {
title: '红旗M平台导入',
//roles: ['SettleAccount.Boms'],//控制页面角色(可以设置多个角色)
icon: '结算'
}
},
{
path: 'hq-M-platform-export',
component: () => import('@/views/ux/billManage/sparePart'),
name: 'SparePartReport',//命名路由
meta: {
title: 'H平台结算差异输出',
//roles: ['abpvnext_master.ProjectPeople'],//控制页面角色(可以设置多个角色)
icon: '二配'
}
}
]
},
{
path: '/export-f-data',
component: () => import('@/views/ux/vw/dataInput/hq_f'),
name: 'export-f-data',//命名路由
redirect: '/ux/vw/dataInput/hq_f',
meta: {
title: 'F平台',
//roles: ['SettleAccount.HQConsigns', 'SettleAccount.HQSpecConsigns'],
icon: '结算'
},
children: [
{
path: 'hq-F-platform',
component: () => import('@/views/ux/vw/dataInput/hq_f'),
name: 'ERPEI',//命名路由
meta: {
title: '红旗F平台导入',
//roles: ['SettleAccount.Boms'],//控制页面角色(可以设置多个角色)
icon: '结算'
}
},
{
path: 'hq-F-platform-export',
component: () => import('@/views/ux/billManage/sparePart'),
name: 'SparePartReport',//命名路由
meta: {
title: 'F平台结算差异输出',
//roles: ['abpvnext_master.ProjectPeople'],//控制页面角色(可以设置多个角色)
icon: '二配'
}
}
]
}
]
}
export default hqMenudataRouter

10
vue/src/router/modules/vwFisData.js

@ -88,6 +88,16 @@ const vwFisDataRouter = {
icon: '结算'
}
},
{
path: 'hq-M-platform',
component: () => import('@/views/ux/vw/dataInput/hq_m'),
name: 'ERPEI',//命名路由
meta: {
title: '红旗M平台导入',
//roles: ['SettleAccount.Boms'],//控制页面角色(可以设置多个角色)
icon: '结算'
}
},
]
}

181
vue/src/router/modules/vw_menu.js

@ -0,0 +1,181 @@
import Layout from '@/layout'
const vwMenudataRouter = {
path: '/capt-vw',
component: Layout,
redirect: 'ux/basedata/Invoice/index',
name: 'HQData',
meta: {
title: '大众工厂',
icon: 'vw',
//roles: ['SettleAccount.HQConsigns', 'SettleAccount.HQSpecConsigns', 'SettleAccount.HQKBs', 'SettleAccount.HQSpecKBs'],
keepAlive: false,
},
children: [
{
path: '/import-data',
name: 'import-data',//命名路由-二级
component: () => import('@/views/ux/billManage/index'),
redirect: 'ux/basedata/Invoice/index',
meta: {
title: '数据导入',
// roles: ['SettleAccount.HQKBs', 'SettleAccount.HQSpecKBs'],
icon: '看板'
},
children: [
{
path: 'invoice',
component: () => import('@/views/ux/basedata/Invoice/index'),
name: 'Invoices',
meta: {
title: '发票汇总',
roles: ['SettleAccount.Invoices'],
icon: '对比'
}
},
{
path: 'settle-account-finish',
component: () => import('@/views/ux/vw/dataInput/r3'),
name: 'SettleAccount',
meta: {
title: 'FIS结算明细',
roles: ['SettleAccount.SettleAccounts'],//控制页面角色(可以设置多个角色)
icon: '库存'
}
},
{
path: 'unsettle-account',
component: () => import('@/views/ux/vw/dataInput/r3'),
name: 'SettleAccount',
meta: {
title: 'FIS未结明细',
roles: ['SettleAccount.SettleAccounts'],//控制页面角色(可以设置多个角色)
icon: '结算'
}
},
{
path: 'kan-ban',
component: () => import('@/views/ux/vw/dataInput/vwKanBan/index'),
name: 'VWKanBan',//命名路由
meta: {
title: '大众看板结算导入',
roles: ['SettleAccount.SettleAccounts'],//控制页面角色(可以设置多个角色)
icon: '看板'
}
},
{
path: 'spare-part',
component: () => import('@/views/ux/vw/dataInput/SparePart'),
name: 'SparePart',//命名路由
meta: {
title: '大众备件结算导入',
roles: ['SettleAccount.Boms'],//控制页面角色(可以设置多个角色)
icon: '工厂'
}
},
{
path: 'scrap-claims',
component: () => import('@/views/ux/vw/dataInput/ScrapClaims'),
name: 'ScrapClaims',
meta: {
title: 'CP7报废和索赔导入',
roles: ['SettleAccount.FISs'],
icon: '文件'
}
},
]
},
{
path: '/export-data',
component: () => import('@/views/ux/billManage/index'),
name: 'export-data',//命名路由
redirect: 'export-data',
meta: {
title: '数据输出',
//roles: ['SettleAccount.HQConsigns', 'SettleAccount.HQSpecConsigns'],
icon: '结算'
},
children: [
{
path: '/invoice-settled/diff',
component: () => import('@/views/ux/billManage/InvoiceSettledDiff'),
name: 'InvoiceSettledDiff',//命名路由
meta: {
title: '发票与结算核对汇总',
roles: ['SettleAccount.Reports'],//控制页面角色(可以设置多个角色)
icon: '结算'
}
},
{
path: '/invoice-settled/detaildiff',
component: () => import('@/views/ux/billManage/InvoiceSettledDetailDiff'),
name: 'InvoiceSettledDetailDiff',//命名路由
meta: {
title: '准时化结算核对明细',
roles: ['SettleAccount.Reports'],//控制页面角色(可以设置多个角色)
icon: '结算对比'
}
},
{
path: '/unInvoice-settled/detailDiff',
component: () => import('@/views/ux/billManage/UnInvoiceSettledDetailDiff'),
name: 'UnInvoiceSettledDetailDiff',//命名路由
meta: {
title: '准时化量差价差输出',
roles: ['SettleAccount.Reports'],//控制页面角色(可以设置多个角色)
icon: '售后'
}
},
{
path: '/unsettle-diff/export',
component: () => import('@/views/ux/billManage/UnSettleDiffExport'),
name: 'UnSettleDiffExport',//命名路由
meta: {
title: '准时化未结核对',
roles: ['SettleAccount.Reports'],//控制页面角色(可以设置多个角色)
icon: '器具'
}
},
{
path: '/unsettled-detail',//大众准时化未结明细表(包含漏结,漏结要有标识)
component: () => import('@/views/ux/billManage/IssuedUnsettled/index'),
name: 'UnsettledDetail',//命名路由
meta: {
title: '准时化未结明细',
roles: ['SettleAccount.Reports'],//控制页面角色(可以设置多个角色)
icon: '报表'
}
},
{
path: '/kbwithcode',
component: () => import('@/views/ux/billManage/kanBanWithCode'),
name: 'KanBanWithCode',//命名路由
meta: {
title: '看板结算输出',
//roles: ['SettleAccount.EstimatedStockDiffReports'],//控制页面角色(可以设置多个角色)
icon: '看板'
}
},
{
path: '/vwsparepart',
component: () => import('@/views/ux/billManage/sparePart'),
name: 'SparePartReport',//命名路由
meta: {
title: '备件结算输出',
//roles: ['abpvnext_master.ProjectPeople'],//控制页面角色(可以设置多个角色)
icon: '供货'
}
}
]
}
]
}
export default vwMenudataRouter

54
vue/src/router/modules/vw_out_order.js

@ -0,0 +1,54 @@
//大众-FIS结算-路由
import Layout from '@/layout'
const vwOutOrderDataRouter = {
path: '/cpat-order',
component: Layout,
redirect: 'pg',
name: '业务数据',
//hidden: true,
meta: {
//requiresAuth: true,
title: '大众出库单管理',
index: 0,
type: 'crm',
icon: '单据导入',
keepAlive: false,
},
children: [
{
path: 'vw-out-order',
component: () => import('@/views/ux/billManage/vwOutOrder/index'),
name: 'SettleAccount',//命名路由
meta: {
title: '大众准时化出库单',
roles: ['SettleAccount.SettleAccounts'],//控制页面角色(可以设置多个角色)
icon: '结算'
}
},
{
path: 'kanban-out-order',
component: () => import('@/views/ux/billManage/kanbanOutOrder/index'),
name: 'SettleAccount',//命名路由
meta: {
title: '大众看板出库单',
roles: ['SettleAccount.SettleAccounts'],//控制页面角色(可以设置多个角色)
icon: '结算'
}
},
// {
// path: 'invoice',
// component: () => import('@/views/ux/basedata/Invoice/index'),
// name: 'Invoices',//命名路由
// meta: {
// title: '大众发票汇总导入',
// roles: ['SettleAccount.Invoices'],
// icon: '对比'
// }
// },
]
}
export default vwOutOrderDataRouter

28
vue/src/views/pg-fis/basedate/m100Online/RepetitionMB.vue

@ -387,6 +387,8 @@ export default {
var tempsTabs = [];
tempsTabs.push({ label: "装箱单号", prop: "billNum", width: 140 });
tempsTabs.push({ label: "单据顺号", prop: "billSerialNum", width: 120 });
tempsTabs.push({ label: "起始顺序号", prop: "beginHostSN", width: 120 });
tempsTabs.push({ label: "结束顺序号", prop: "endHostSN", width: 120 });
tempsTabs.push({
label: "左或右",
prop: "billLocation",
@ -424,8 +426,13 @@ export default {
});
tempsTabs.push({
label: "底盘号",
prop: "Vin",
label: "起始底盘号",
prop: "beginVin",
width: 160,
});
tempsTabs.push({
label: "结束底盘号",
prop: "endVin",
width: 160,
});
return tempsTabs;
@ -524,8 +531,25 @@ export default {
this.listQuery
)
.then((response) => {
response.items.forEach((item)=>{
if(item.printType == 0)
{
item.printType = "正常打印";
}
else if(item.printType == 1)
{
item.printType = "重打";
}
else
{
item.printType = "补打";
}
});
this.list = response.items;
this.totalCount = response.totalCount;
setTimeout(() => {
//
this.listLoading = false;

26
vue/src/views/pg-fis/basedate/m100Online/RepetitionZHB.vue

@ -342,6 +342,8 @@ export default {
var tempsTabs = [];
tempsTabs.push({ label: "装箱单号", prop: "billNum", width: 140 });
tempsTabs.push({ label: "单据顺号", prop: "billSerialNum", width: 120 });
tempsTabs.push({ label: "起始顺序号", prop: "beginHostSN", width: 120 });
tempsTabs.push({ label: "结束顺序号", prop: "endHostSN", width: 120 });
tempsTabs.push({
label: "左或右",
prop: "billLocation",
@ -379,8 +381,13 @@ export default {
});
tempsTabs.push({
label: "底盘号",
prop: "Vin",
label: "起始底盘号",
prop: "beginVin",
width: 160,
});
tempsTabs.push({
label: "结束底盘号",
prop: "endVin",
width: 160,
});
return tempsTabs;
@ -480,6 +487,21 @@ export default {
this.listQuery
)
.then((response) => {
response.items.forEach((item)=>{
if(item.printType == 0)
{
item.printType = "正常打印";
}
else if(item.printType == 1)
{
item.printType = "重打";
}
else
{
item.printType = "补打";
}
});
this.list = response.items;
this.totalCount = response.totalCount;
setTimeout(() => {

222
vue/src/views/pg-fis/basedate/m100Online/ScrapMB.vue

@ -99,7 +99,7 @@
type="danger"
icon="el-icon-delete"
size="mini"
@click="handleDelete()"
@click="print()"
>作废(支持批量)</el-button
>
</el-form-item>
@ -195,6 +195,57 @@
/>
</div>
</div>
<div>
<el-dialog
title="作废信息"
append-to-body="true"
:visible.sync="dialogTableVisible"
>
<el-table :data="zflist">
<el-table-column
property="billNum"
label="装箱单号"
width="100"
></el-table-column>
<el-table-column
property="billSerialNum"
label="单据顺号"
width="100"
></el-table-column>
<el-table-column
property="billLocation"
label="左或右"
width="100"
></el-table-column>
<el-table-column
property="providerCode"
label="供应商厂家代码"
width="100"
></el-table-column>
<el-table-column
property="partType"
label="零件类型"
width="100"
></el-table-column>
<el-table-column
property="capacity"
label="器具容量"
width="100"
></el-table-column>
<el-table-column
property="printDate"
label="打印日期"
width="100"
></el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="dialogTableVisible = false"
>取消</el-button
>
<el-button type="primary" @click="handleDelete"> </el-button>
</div>
</el-dialog>
</div>
</div>
</template>
@ -243,7 +294,13 @@ export default {
};
return {
crmType: "M100Online-MB",
getRowKeys: (row) => {
dialogTableVisible: false,
zflist: null,
zuofei: [],
getRowKeys:
(row) => {
return row.id; //id
},
expands: [], //id
@ -361,6 +418,8 @@ export default {
var tempsTabs = [];
tempsTabs.push({ label: "装箱单号", prop: "billNum", width: 140 });
tempsTabs.push({ label: "单据顺号", prop: "billSerialNum", width: 120 });
tempsTabs.push({ label: "起始顺序号", prop: "beginHostSN", width: 120 });
tempsTabs.push({ label: "结束顺序号", prop: "endHostSN", width: 120 });
tempsTabs.push({
label: "左或右",
prop: "billLocation",
@ -398,8 +457,13 @@ export default {
});
tempsTabs.push({
label: "底盘号",
prop: "Vin",
label: "起始底盘号",
prop: "beginVin",
width: 160,
});
tempsTabs.push({
label: "结束底盘号",
prop: "endVin",
width: 160,
});
return tempsTabs;
@ -499,6 +563,15 @@ export default {
this.listQuery
)
.then((response) => {
response.items.forEach((item) => {
if (item.printType == 0) {
item.printType = "正常打印";
} else if (item.printType == 1) {
item.printType = "重打";
} else {
item.printType = "补打";
}
});
this.list = response.items;
this.totalCount = response.totalCount;
setTimeout(() => {
@ -559,25 +632,21 @@ export default {
.catch(() => {});
}
},
//-
handleDelete(row) {
//
print(row) {
var params = [];
let myalert = ""; //使
let myalertcount = [];
if (row) {
//
params.push(row.id);
myalert = row.name;
} else {
//
this.multipleSelection.forEach((element) => {
let id = element.id;
params.push(id);
});
myalert = "选中项";
}
console.log("作废查询参数:" + JSON.stringify(params));
this.zuofei = params;
this.dialogTableVisible = true;
this.$axios
.posts("/api/newjit/MenBanPackingList/get-all-del-List", params)
.then((response) => {
@ -591,46 +660,111 @@ export default {
return;
} else {
this.fileQuery.dataname = JSON.stringify(response);
response.forEach((itemsss) => {
myalertcount.push(itemsss.billNum);
});
this.zflist = response;
console.log(
"门板-调用Handlers/Handler1.ashx?report=menban传的值:" +
JSON.stringify(this.fileQuery.dataname)
);
this.$confirm(
"是否作废选中的" + response.length + "条记录?",
"提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(() => {
this.$axios
.posts("/api/newjit/MenBanPackingList/scrap", params)
.then((response) => {
const index = this.list.indexOf(row);
this.$notify({
title: "成功",
message: "作废成功",
type: "success",
duration: 2000,
});
this.getList();
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消操作",
});
});
}
})
.catch(() => {});
},
//
handleDelete() {
//debugger;
let params = this.zuofei;
this.$axios
.posts("/api/newjit/MenBanPackingList/scrap", params)
.then((response) => {
console.log(
"门板-调用Handlers/Handler1.ashx?report=menban传的值:" +
JSON.stringify(response)
);
this.$notify({
title: "成功",
message: "作废成功",
type: "success",
duration: 2000,
});
});
this.dialogTableVisible = false;
this.getList();
},
//-
// handleDelete(row) {
// //
// var params = [];
// let myalert = ""; //使
// let myalertcount = [];
// if (row) {
// //
// params.push(row.id);
// myalert = row.name;
// } else {
// //
// this.multipleSelection.forEach((element) => {
// let id = element.id;
// params.push(id);
// });
// myalert = "";
// }
// console.log("" + JSON.stringify(params));
// this.$axios
// .posts("/api/newjit/MenBanPackingList/get-all-del-List", params)
// .then((response) => {
// //alert(response.status);
// const index = this.list.indexOf(row);
// if (response.status === false) {
// this.$message({
// message: response.message,
// type: "error",
// });
// return;
// } else {
// this.fileQuery.dataname = JSON.stringify(response);
// response.forEach((itemsss) => {
// myalertcount.push(itemsss.billNum);
// });
// console.log(
// "-Handlers/Handler1.ashx?report=menban" +
// JSON.stringify(this.fileQuery.dataname)
// );
// this.$confirm(
// "" + response.length + "?",
// "",
// {
// confirmButtonText: "",
// cancelButtonText: "",
// type: "warning",
// }
// )
// .then(() => {
// this.$axios
// .posts("/api/newjit/MenBanPackingList/scrap", params)
// .then((response) => {
// const index = this.list.indexOf(row);
// this.$notify({
// title: "",
// message: "",
// type: "success",
// duration: 2000,
// });
// this.getList();
// });
// })
// .catch(() => {
// this.$message({
// type: "info",
// message: "",
// });
// });
// }
// })
// .catch(() => {});
// },
fetchData(id) {
//
this.$axios

214
vue/src/views/pg-fis/basedate/m100Online/ScrapZHB.vue

@ -124,7 +124,7 @@
type="danger"
icon="el-icon-delete"
size="mini"
@click="handleDelete()"
@click="print()"
>作废(支持批量)</el-button
>
</el-form-item>
@ -200,6 +200,57 @@
/>
</div>
</div>
<div>
<el-dialog
title="作废信息"
append-to-body="true"
:visible.sync="dialogTableVisible"
>
<el-table :data="zflist">
<el-table-column
property="billNum"
label="装箱单号"
width="100"
></el-table-column>
<el-table-column
property="billSerialNum"
label="单据顺号"
width="100"
></el-table-column>
<el-table-column
property="billLocation"
label="左或右"
width="100"
></el-table-column>
<el-table-column
property="providerCode"
label="供应商厂家代码"
width="100"
></el-table-column>
<el-table-column
property="partType"
label="零件类型"
width="100"
></el-table-column>
<el-table-column
property="capacity"
label="器具容量"
width="100"
></el-table-column>
<el-table-column
property="printDate"
label="打印日期"
width="100"
></el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="dialogTableVisible = false"
>取消</el-button
>
<el-button type="primary" @click="handleDelete"> </el-button>
</div>
</el-dialog>
</div>
</div>
</template>
@ -248,6 +299,9 @@ export default {
};
return {
crmType: "M100Online-MB",
dialogTableVisible: false,
zuofei: [],
zflist: null,
getRowKeys: (row) => {
return row.id; //id
},
@ -373,6 +427,8 @@ export default {
var tempsTabs = [];
tempsTabs.push({ label: "装箱单号", prop: "billNum", width: 140 });
tempsTabs.push({ label: "单据顺号", prop: "billSerialNum", width: 120 });
tempsTabs.push({ label: "起始顺序号", prop: "beginHostSN", width: 120 });
tempsTabs.push({ label: "结束顺序号", prop: "endHostSN", width: 120 });
tempsTabs.push({
label: "左或右",
prop: "billLocation",
@ -410,12 +466,12 @@ export default {
});
tempsTabs.push({
label: "起底盘号",
label: "起底盘号",
prop: "beginVin",
width: 160,
});
tempsTabs.push({
label: "底盘号",
label: "结束底盘号",
prop: "endVin",
width: 160,
});
@ -515,6 +571,15 @@ export default {
this.listQuery
)
.then((response) => {
response.items.forEach((item) => {
if (item.printType == 0) {
item.printType = "正常打印";
} else if (item.printType == 1) {
item.printType = "重打";
} else {
item.printType = "补打";
}
});
this.list = response.items;
this.totalCount = response.totalCount;
setTimeout(() => {
@ -577,25 +642,21 @@ export default {
.catch(() => {});
}
},
//-
handleDelete(row) {
//
var params = [];
let myalert = ""; //使
let myalertcount = [];
print(row) {
var params = [];
if (row) {
//
params.push(row.id);
myalert = row.name;
} else {
//
this.multipleSelection.forEach((element) => {
let id = element.id;
params.push(id);
});
myalert = "选中项";
}
console.log("作废查询参数:" + JSON.stringify(params));
this.zuofei = params;
this.dialogTableVisible = true;
this.$axios
.posts("/api/newjit/ZhuHuBanPackingList/get-all-del-List", params)
.then((response) => {
@ -609,46 +670,109 @@ export default {
return;
} else {
this.fileQuery.dataname = JSON.stringify(response);
response.forEach((itemsss) => {
myalertcount.push(itemsss.billNum);
});
this.zflist = response;
console.log(
"板-调用Handlers/Handler1.ashx?report=menban传的值:" +
"柱护板-调用Handlers/Handler1.ashx?report=menban传的值:" +
JSON.stringify(this.fileQuery.dataname)
);
this.$confirm(
"是否作废选中的" + response.length + "条记录?",
"提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(() => {
this.$axios
.posts("/api/newjit/ZhuHuBanPackingList/scrap", params)
.then((response) => {
const index = this.list.indexOf(row);
this.$notify({
title: "成功",
message: "作废成功",
type: "success",
duration: 2000,
});
this.getList();
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消操作",
});
});
}
})
.catch(() => {});
},
//
handleDelete() {
//debugger;
let params = this.zuofei;
this.$axios
.posts("/api/newjit/ZhuHuBanPackingList/scrap", params)
.then((response) => {
console.log(
"门板-调用Handlers/Handler1.ashx?report=menban传的值:" +
JSON.stringify(response)
);
this.$notify({
title: "成功",
message: "作废成功",
type: "success",
duration: 2000,
});
});
this.dialogTableVisible = false;
this.getList();
},
//-
// handleDelete(row) {
// //
// var params = [];
// let myalert = ""; //使
// let myalertcount = [];
// if (row) {
// //
// params.push(row.id);
// myalert = row.name;
// } else {
// //
// this.multipleSelection.forEach((element) => {
// let id = element.id;
// params.push(id);
// });
// myalert = "";
// }
// console.log("" + JSON.stringify(params));
// this.$axios
// .posts("/api/newjit/ZhuHuBanPackingList/get-all-del-List", params)
// .then((response) => {
// //alert(response.status);
// const index = this.list.indexOf(row);
// if (response.status === false) {
// this.$message({
// message: response.message,
// type: "error",
// });
// return;
// } else {
// this.fileQuery.dataname = JSON.stringify(response);
// response.forEach((itemsss) => {
// myalertcount.push(itemsss.billNum);
// });
// console.log(
// "-Handlers/Handler1.ashx?report=menban" +
// JSON.stringify(this.fileQuery.dataname)
// );
// this.$confirm(
// "" + response.length + "?",
// "",
// {
// confirmButtonText: "",
// cancelButtonText: "",
// type: "warning",
// }
// )
// .then(() => {
// this.$axios
// .posts("/api/newjit/ZhuHuBanPackingList/scrap", params)
// .then((response) => {
// const index = this.list.indexOf(row);
// this.$notify({
// title: "",
// message: "",
// type: "success",
// duration: 2000,
// });
// this.getList();
// });
// })
// .catch(() => {
// this.$message({
// type: "info",
// message: "",
// });
// });
// }
// })
// .catch(() => {});
// },
fetchData(id) {
//
this.$axios

2
vue/src/views/pg-fis/basedate/m100Online/index.vue

@ -857,7 +857,7 @@ export default {
},
getList(data) {
this.listLoading = true;
if (data != undefined) {alert()
if (data != undefined) {
this.listQuery.SkipCount = (this.page - 1) * data.limit;
} else {
this.listQuery.SkipCount = (this.page - 1) * 15;

12
vue/src/views/pg-fis/basedate/m100Online/normalPritIndex.vue

@ -546,7 +546,7 @@ export default {
dialogFormVisible: false,
formTitle: "",
isEdit: false,
formLoading: false,
formLoading: false, //
tableHeight: document.documentElement.clientHeight - 335,
detailTableHeight: 250,
details: [], //
@ -1277,7 +1277,7 @@ export default {
this.hostPrintQuery.endHostSN = parseInt(this.form.endHostSN);
if (this.listQuery.productType === 1) {
//-
//-
this.hostCheckQuery.beginHostSN = parseInt(this.form.beginHostSN);
this.hostCheckQuery.endHostSN = parseInt(this.form.endHostSN);
this.hostCheckQuery.productLine = this.listQuery.productLine;
@ -1467,7 +1467,7 @@ export default {
console.log(this.fileQuery.dataname);
this.$axios
.posts(
"/Handlers/Handler1.ashx?report=menban",
"/Handlers/Handler1.ashx?report=zhuhuban",
qs.stringify(this.fileQuery)
)
.then((response) => {
@ -1514,7 +1514,7 @@ export default {
console.log(this.fileQuery.dataname);
this.$axios
.posts(
"/Handlers/Handler1.ashx?report=menban",
"/Handlers/Handler1.ashx?report=zhuhuban",
qs.stringify(this.fileQuery)
)
.then((response) => {
@ -1973,7 +1973,7 @@ export default {
console.log(this.fileQuery.dataname);
this.$axios
.posts(
"/Handlers/Handler1.ashx?report=menban",
"/Handlers/Handler1.ashx?report=zhuhuban",
qs.stringify(this.fileQuery)
)
.then((response) => {
@ -2012,7 +2012,7 @@ export default {
console.log(this.fileQuery.dataname);
this.$axios
.posts(
"/Handlers/Handler1.ashx?report=menban",
"/Handlers/Handler1.ashx?report=zhuhuban",
qs.stringify(this.fileQuery)
)
.then((response) => {

34
vue/src/views/pg-fis/basedate/select/index.vue

@ -9,6 +9,40 @@
v-show="showSearch"
:inline="true"
>
<el-form-item label="生产线:" prop="productType">
<el-select
v-model="listQuery.productType"
clearable
placeholder="请选择"
size="medium"
style="margin-right: 15px"
@change="ptypeselectChange"
>
<el-option
v-for="item in productTypeList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="" prop="productLine">
<el-select
v-model="listQuery.productLine"
clearable
placeholder="请选择"
size="medium"
style="margin-right: 15px"
@change="valueselectChange"
>
<el-option
v-for="item in PLChildList"
:key="item.id"
:label="item.productLineName"
:value="item.productLineCode"
/>
</el-select>
</el-form-item>
<el-form-item label="版本:" prop="Version">
<el-input
v-model="listQuery.Version"

7
vue/src/views/ux/basedata/index.vue

@ -0,0 +1,7 @@
<!-- 父级路由组件 -->
<template>
<div>
<!-- xxx html 内容 -->
<router-view />
</div>
</template>

2
vue/src/views/ux/billManage/FisUnSettledDiff/index.vue

@ -512,7 +512,7 @@ export default {
tempsTabs.push({
label: "单据流水号",
prop: "taskId",
width: 80,
width: 130,
});
tempsTabs.push({
label: "当前版本",

205
vue/src/views/ux/billManage/InvoiceSettledDetailDiff/index.vue

@ -17,7 +17,7 @@
type="primary"
icon="el-icon-plus"
@click="handleCreate"
>统计
>统计明细
</el-button>
<el-button
class="filter-item"
@ -35,6 +35,14 @@
@click="handleCreateBills()"
>生成出库单(支持批量)</el-button
>
<el-button
class="filter-item"
type="success"
icon="el-icon-check"
size="mini"
@click="handleConfirm()"
>已确认</el-button
>
</flexbox>
</div>
<!-- 刷新 -->
@ -55,7 +63,7 @@
</el-tooltip>
<span style="margin-left: 10px; color: #ff5640; float: right"
>说明每间隔15秒进行自动刷新</span
>说明每间隔30秒进行自动刷新</span
>
</flexbox>
</div>
@ -75,6 +83,7 @@
border
highlight-current-row
style="width: 100%"
@sort-change="sortChange"
@row-click="handleRowClick"
@selection-change="handleSelectionChange"
@filter-change="filterChange"
@ -396,21 +405,46 @@
<el-select
v-model="formCount.materialGroupValue"
size="medium"
collapse-tags
multiple
filterable
clearable
style="width: 380px; margin-right: 15px"
@change="valueChange"
style="width: 350px; margin-right: 15px"
placeholder="请选择"
>
<el-option
v-for="item in materialGroupList"
:key="item.value"
:label="item.label"
:label="item.value"
:value="item.value"
></el-option>
>
<span style="float: left">{{ item.label }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{
item.value
}}</span>
</el-option>
</el-select>
<!-- <el-select
v-model="formCount.materialGroupValue"
class="my-el-select"
style="width: 350px; margin-right: 15px"
size="medium"
multiple
clearable
placeholder="请选择"
>
<el-option
v-for="item in materialGroupList"
:key="item.label"
:label="item.value"
:value="item.label"
>
<span style="float: left">{{ item.label }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{
item.value
}}</span>
</el-option>
</el-select> -->
</el-form-item>
</el-col>
</el-row>
@ -524,28 +558,25 @@
<el-col :md="4" :xs="24">
<el-form-item label="KEEN号" />
</el-col>
<el-col :md="20" :xs="24" style="margin-left: -80px">
<el-col :md="10" :xs="24" style="margin-left: -80px">
<el-form-item prop="kennCode">
<el-input
type="textarea"
v-model="formCount.kennCode"
style="width: 450px"
style="width: 170px"
:rows="4"
placeholder="多个KENN号,请以回车换行形式添加!"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :md="4" :xs="24">
<el-form-item label="底盘号" />
</el-col>
<el-col :md="20" :xs="24" style="margin-left: -80px">
<el-col :md="10" :xs="24" style="margin-left: -95px">
<el-form-item prop="chassisNumber">
<el-input
v-model="formCount.chassisNumber"
style="width: 450px"
style="width: 170px"
type="textarea"
:rows="4"
placeholder="多个底盘号,请以回车换行形式添加!"
@ -558,27 +589,25 @@
<el-col :md="4" :xs="24">
<el-form-item label="客户零件号" />
</el-col>
<el-col :md="20" :xs="24" style="margin-left: -80px">
<el-col :md="10" :xs="24" style="margin-left: -80px">
<el-form-item prop="materialCode">
<el-input
v-model="formCount.materialCode"
style="width: 450px"
style="width: 170px"
type="textarea"
:rows="4"
placeholder="多个客户零件号,请以回车换行形式添加!"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :md="4" :xs="24">
<el-form-item label="厂内零件号" />
</el-col>
<el-col :md="20" :xs="24" style="margin-left: -80px">
<el-col :md="10" :xs="24" style="margin-left: -95px">
<el-form-item prop="sapCode">
<el-input
v-model="formCount.sapCode"
style="width: 450px"
style="width: 170px"
type="textarea"
:rows="4"
placeholder="多个厂内零件号,请以回车换行形式添加!"
@ -800,6 +829,10 @@ export default {
name: "",
type: "",
},
listBillQuery: {
version: "",
guids: [],
},
page: 1,
JobversionValue: "",
JobversionValueVerson: "",
@ -829,7 +862,7 @@ export default {
this.listQuery.taskId = "";
this.listQuery.stateName = "";
setTimeout(this.getList, 0);
}, 1000 * 15); //15
}, 1000 * 30); //30
// $oncebeforeDestroy
this.$once("hook:beforeDestroy", () => {
clearInterval(timer);
@ -860,7 +893,7 @@ export default {
tempsTabs.push({
label: "单据流水号",
prop: "taskId",
width: 85,
width: 120,
});
tempsTabs.push({
label: "模块名称",
@ -882,20 +915,46 @@ export default {
prop: "remark",
width: 220,
});
// tempsTabs.push({
// label: "",
// prop: "stateName",
// width: 100,
// });
tempsTabs.push({
label: "审批状态",
prop: "fileName",
width: 150,
});
return tempsTabs;
},
},
methods: {
sortChange(data) {
const { prop, order } = data;
if (!prop || !order) {
this.handleFilter();
return;
}
this.listQuery.Sorting = prop + " " + order;
console.log(this.listQuery.Sorting);
this.handleFilter();
},
/** 筛选操作 */
handleFilter() {
this.page = 1;
this.getList();
this.listQuery.Filters = [];
if (this.searchContent != "") {
var column = "taskId";
let filter = {
logic: 0,
column: column,
action: 0,
value: this.searchContent,
};
this.listQuery.Filters.push(filter);
}
this.getList();
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
//
handleCreateBills(row){
handleConfirm(row) {
if (this.multipleSelection.length == 0) {
this.$message({
message: "至少选择一行!",
@ -917,6 +976,58 @@ export default {
});
myalert = "选中项";
}
this.$confirm("是否确认" + myalert + "?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$axios
.posts("/api/settleaccount/wmsjitoutput/WmsJitOutPutAudit", params)
.then((response) => {
const index = this.list.indexOf(row);
this.$notify({
title: "成功",
message: "操作成功",
type: "success",
duration: 2000,
});
this.getList();
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消操作",
});
});
},
//
handleCreateBills(row) {
// if (this.multipleSelection.length == 0) {
// this.$message({
// message: "",
// type: "warning",
// });
// return;
// }
var params = [];
let myalert = ""; //使
if (row) {
//
params.push(row.id);
myalert = row.name;
} else {
//
this.multipleSelection.forEach((element) => {
let id = element.id;
params.push(id);
});
myalert = "选中项";
}
this.listBillQuery.guids = params;
this.listBillQuery.version = this.JobversionValue;
console.log("出库单条件:" + JSON.stringify(this.listBillQuery));
this.$confirm("是否确认出库" + myalert + "?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
@ -924,8 +1035,14 @@ export default {
})
.then(() => {
this.$axios
.posts("/api/settleaccount/wms/WmsJitOutPut", params)
.posts(
"/api/settleaccount/wmsjitoutput/WmsJitOutPut",
this.listBillQuery
)
.then((response) => {
console.log(
"检查柱护板-hostCheckQuery" + JSON.stringify(response)
);
const index = this.list.indexOf(row);
this.$notify({
title: "成功",
@ -933,6 +1050,7 @@ export default {
type: "success",
duration: 2000,
});
this.getList();
});
})
@ -1134,19 +1252,41 @@ export default {
});
},
//
// getMaterialGroup() {
// this.$axios
// .posts("/api/settleaccount/CodeSetting/list", {
// project: "",
// maxResultCount: 1000,
// skipCount: 0,
// })
// .then((response) => {
// this.materialGroupList = [];
// response.items.forEach((element) => {
// let options = {};
// options.value = element.description;
// options.label = element.value;
// this.materialGroupList.push(options);
// });
// })
// .catch(() => {
// this.listLoading = false;
// });
// },
//
getMaterialGroup() {
this.$axios
.posts("/api/settleaccount/CodeSetting/list", {
project: "物料组",
maxResultCount: 1000,
skipCount: 0,
sorting:"value ascending"
})
.then((response) => {
this.materialGroupList = [];
response.items.forEach((element) => {
let options = {};
options.value = element.description;
options.label = element.description + "/" + element.value;
options.label = element.value;
this.materialGroupList.push(options);
});
})
@ -1363,7 +1503,7 @@ export default {
getList() {
this.listLoading = true;
//
this.listQuery.name = "大众发票与结算核对明细表";
this.listQuery.name = "准时化结算核对明细";
this.listQuery.type = this.JobversionValue;
this.$axios
.posts("/api/settleaccount/Job/list", this.listQuery)
@ -1416,7 +1556,6 @@ export default {
};
</script>
<style lang="scss" scoped>
@import "../../styles/crmtable.scss";
@import "../../styles/steps.scss";
@ -1427,4 +1566,4 @@ export default {
border: 0px;
box-shadow: none !important;
}
</style>
</style>

5
vue/src/views/ux/billManage/InvoiceSettledDiff/index.vue

@ -379,7 +379,6 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :md="4" :xs="24">
<el-form-item label="客户零件号" />
@ -627,7 +626,7 @@ export default {
tempsTabs.push({
label: "单据流水号",
prop: "taskId",
width: 85,
width: 130,
});
tempsTabs.push({
label: "模块名称",
@ -990,7 +989,7 @@ export default {
getList() {
this.listLoading = true;
//
this.listQuery.name = "大众发票与结算核对汇总";
this.listQuery.name = "发票与结算核对汇总";
this.listQuery.type = this.JobversionValue;
this.$axios
.posts("/api/settleaccount/Job/list", this.listQuery)

2
vue/src/views/ux/billManage/IssuedUnsettled/index.vue

@ -730,7 +730,7 @@ export default {
tempsTabs.push({
label: "单据流水号",
prop: "taskId",
width: 85,
width: 130,
});
tempsTabs.push({
label: "模块名称",

2
vue/src/views/ux/billManage/SettleDoorPanel/index.vue

@ -772,7 +772,7 @@ export default {
tempsTabs.push({
label: "单据流水号",
prop: "taskId",
width: 85,
width: 130,
});
tempsTabs.push({
label: "模块名称",

19
vue/src/views/ux/billManage/UnInvoiceSettledDetailDiff/index.vue

@ -388,20 +388,24 @@
<el-select
v-model="formCount.materialGroupValue"
size="medium"
collapse-tags
multiple
filterable
clearable
style="width: 380px; margin-right: 15px"
@change="valueChange"
style="width: 350px; margin-right: 15px"
placeholder="请选择"
>
<el-option
v-for="item in materialGroupList"
:key="item.value"
:label="item.label"
:label="item.value"
:value="item.value"
></el-option>
>
<span style="float: left">{{ item.label }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{
item.value
}}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
@ -773,7 +777,7 @@ export default {
tempsTabs.push({
label: "单据流水号",
prop: "taskId",
width: 85,
width: 130,
});
tempsTabs.push({
label: "模块名称",
@ -953,13 +957,14 @@ export default {
project: "物料组",
maxResultCount: 1000,
skipCount: 0,
sorting: "value ascending",
})
.then((response) => {
this.materialGroupList = [];
response.items.forEach((element) => {
let options = {};
options.value = element.description;
options.label = element.description + "/" + element.value;
options.label = element.value;
this.materialGroupList.push(options);
});
})
@ -1176,7 +1181,7 @@ export default {
getList() {
this.listLoading = true;
//
this.listQuery.name = "大众准时化结算数量差异比对表";
this.listQuery.name = "准时化量差输出";
this.listQuery.type = this.JobversionValue;
this.$axios
.posts("/api/settleaccount/Job/list", this.listQuery)

19
vue/src/views/ux/billManage/UnSettleDiffExport/index.vue

@ -390,19 +390,23 @@
v-model="formCount.materialGroupValue"
size="medium"
multiple
collapse-tags
filterable
clearable
style="width: 380px; margin-right: 15px"
@change="valueChange"
style="width: 350px; margin-right: 15px"
placeholder="请选择"
>
<el-option
v-for="item in materialGroupList"
:key="item.value"
:label="item.label"
:label="item.value"
:value="item.value"
></el-option>
>
<span style="float: left">{{ item.label }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{
item.value
}}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
@ -730,7 +734,7 @@ export default {
tempsTabs.push({
label: "单据流水号",
prop: "taskId",
width: 85,
width: 130,
});
tempsTabs.push({
label: "模块名称",
@ -905,13 +909,14 @@ export default {
project: "物料组",
maxResultCount: 1000,
skipCount: 0,
sorting: "value ascending",
})
.then((response) => {
this.materialGroupList = [];
response.items.forEach((element) => {
let options = {};
options.value = element.description;
options.label = element.description + "/" + element.value;
options.label = element.value;
this.materialGroupList.push(options);
});
})
@ -1120,7 +1125,7 @@ export default {
getList() {
this.listLoading = true;
//
this.listQuery.name = "大众准时化未结差异比对表";
this.listQuery.name = "准时化未结差异比对输出";
this.listQuery.type = this.JobversionValue;
this.$axios
.posts("/api/settleaccount/Job/list", this.listQuery)

2
vue/src/views/ux/billManage/UnSettledDiff/index.vue

@ -728,7 +728,7 @@ export default {
tempsTabs.push({
label: "单据流水号",
prop: "taskId",
width: 85,
width: 130,
});
tempsTabs.push({
label: "模块名称",

7
vue/src/views/ux/billManage/index.vue

@ -0,0 +1,7 @@
<!-- 父级路由组件 -->
<template>
<div>
<!-- xxx html 内容 -->
<router-view />
</div>
</template>

100
vue/src/views/ux/billManage/kanBanWithCode/index.vue

@ -35,6 +35,14 @@
@click="handleCreateBills()"
>生成出库单(支持批量)</el-button
>
<el-button
class="filter-item"
type="success"
icon="el-icon-check"
size="mini"
@click="handleConfirm()"
>已确认</el-button
>
</flexbox>
</div>
<!-- 刷新 -->
@ -396,20 +404,24 @@
<el-select
v-model="formCount.materialGroupValue"
size="medium"
collapse-tags
multiple
filterable
clearable
style="width: 380px; margin-right: 15px"
@change="valueChange"
style="width: 350px; margin-right: 15px"
placeholder="请选择"
>
<el-option
v-for="item in materialGroupList"
:key="item.value"
:label="item.label"
:label="item.value"
:value="item.value"
></el-option>
>
<span style="float: left">{{ item.label }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{
item.value
}}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
@ -455,25 +467,23 @@
<el-form-item>
<el-input
type="textarea"
style="width: 450px"
style="width: 170px"
v-model="formCount.kanBan"
:rows="5"
placeholder="多个看板号,请以回车换行形式添加!"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :md="4" :xs="24">
<el-form-item label="客户零件号" />
</el-col>
<el-col :md="20" :xs="24" style="margin-left: -80px">
<el-col :md="10" :xs="24" style="margin-left: -95px">
<el-form-item prop="materialCode">
<el-input
type="textarea"
v-model="formCount.materialCode"
:rows="5"
style="width: 450px"
style="width: 170px"
placeholder="多个客户零件号,请以回车换行形式添加!"
/>
</el-form-item>
@ -728,7 +738,7 @@ export default {
tempsTabs.push({
label: "单据流水号",
prop: "taskId",
width: 85,
width: 120,
});
tempsTabs.push({
label: "模块名称",
@ -745,21 +755,16 @@ export default {
prop: "createdAt",
width: 150,
});
tempsTabs.push({
tempsTabs.push({
label: "说明",
prop: "remark",
width: 220,
});
// tempsTabs.push({
// label: "",
// prop: "actionName",
// width: 120,
// });
// tempsTabs.push({
// label: "",
// prop: "stateName",
// width: 100,
// });
tempsTabs.push({
label: "审批状态",
prop: "fileName",
width: 150,
});
return tempsTabs;
},
},
@ -816,6 +821,54 @@ export default {
});
});
},
handleConfirm(row) {
if (this.multipleSelection.length == 0) {
this.$message({
message: "至少选择一行!",
type: "warning",
});
return;
}
var params = [];
let myalert = ""; //使
if (row) {
//
params.push(row.id);
myalert = row.name;
} else {
//
this.multipleSelection.forEach((element) => {
let id = element.id;
params.push(id);
});
myalert = "选中项";
}
this.$confirm("是否确认" + myalert + "?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$axios
.posts("/api/settleaccount/wms/WmsJitOutPut", params)
.then((response) => {
const index = this.list.indexOf(row);
this.$notify({
title: "成功",
message: "生成成功",
type: "success",
duration: 2000,
});
this.getList();
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消操作",
});
});
},
//
handleCreateBills(row) {
if (this.multipleSelection.length == 0) {
@ -957,13 +1010,14 @@ export default {
project: "物料组",
maxResultCount: 1000,
skipCount: 0,
sorting: "value ascending",
})
.then((response) => {
this.materialGroupList = [];
response.items.forEach((element) => {
let options = {};
options.value = element.description;
options.label = element.description + "/" + element.value;
options.label = element.value;
this.materialGroupList.push(options);
});
})
@ -1152,7 +1206,7 @@ export default {
getList() {
this.listLoading = true;
//
this.listQuery.name = "大众看板结算与交货核对明细表";
this.listQuery.name = "看板结算数量差异输出";
this.$axios
.posts("/api/settleaccount/Job/list", this.listQuery)
.then((response) => {

541
vue/src/views/ux/billManage/kanbanOutOrder/detail.vue

@ -0,0 +1,541 @@
<!--FIS发运数据对比输出表-明细数据-->
<template>
<div class="cr-body-content">
<flexbox class="content-header">
<!-- <el-button
class="filter-item"
size="mini"
type="info"
icon="el-icon-download"
@click="handleDownload()"
>导出全部
</el-button> -->
<el-button
class="filter-item"
type="success"
icon="el-icon-check"
size="mini"
@click="handleCreateBills()"
>确认出库单(支持批量)</el-button
>
<el-button
class="filter-item"
size="mini"
type="info"
icon="el-icon-download"
@click="handleCancelBills()"
>取消出库(支持批量)
</el-button>
<el-input
v-model="searchContent"
clearable
size="small"
placeholder="按照零件号搜索..."
style="width: 230px"
class="search-container"
@keyup.enter.native="handleFilter"
/>
<el-button
size="mini"
type="success"
icon="el-icon-search"
@click="handleFilter"
>搜索
</el-button>
<!--表格头组件filter查询-->
<c-r-m-table-head
ref="crmTableHead"
:crm-type="crmType"
@handle="handleHandle"
@filter="handleFilters"
>
</c-r-m-table-head>
</flexbox>
<!--表格渲染-->
<el-table
ref="multipleTable"
v-loading="listLoading"
element-loading-text="拼命加载中..."
element-loading-spinner="el-icon-loading"
class="cr-table"
:data="list"
:height="tableHeight"
:cell-style="cellStyle"
:header-cell-style="headerRowStyle"
size="small"
stripe
border
highlight-current-row
style="width: 100%"
@sort-change="sortChange"
@selection-change="handleSelectionChange"
@row-click="handleRowClick"
>
<el-table-column type="selection" width="44px"></el-table-column>
<el-table-column
v-for="(item, index) in getDefaultField"
:key="index"
:prop="item.prop"
:label="item.label"
:min-width="item.width"
:formatter="fieldFormatter"
sortable="custom"
show-overflow-tooltip
:gutter="0"
>
<template slot="header" slot-scope="scope">
{{ scope.column.label }}
</template>
</el-table-column>
</el-table>
<div class="table-footer">
<!-- 分页控件 style="margin-top: -25px;margin-bottom:-25px;float:right;"-->
<pagination
v-show="totalCount > 0"
:total="totalCount"
:page.sync="page"
:limit.sync="listQuery.MaxResultCount"
@pagination="getList"
/>
</div>
</div>
</template>
<script>
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
import permission from "@/directive/permission/index.js";
import CRMTableHead from "../../components/CRMTableHead";
import { downloadFile } from "@/utils/crmindex.js";
export default {
name: "sendUnsettledDiffReport",
components: { Pagination, CRMTableHead, CRMTableHead },
directives: { permission },
props: {
customerInfos: {
type: Array,
default: () => {
return [];
},
},
},
data() {
return {
crmType: "vwOutOrder",
rules: {
//
erpMaterialCode: [
{ required: true, message: "必须输入!", trigger: "blur" },
],
},
searchContent: "", //
customerInfo: {
parentId: "",
},
form: {
dicDetailID: "",
customerId: "",
projectId: "",
},
list: null,
totalCount: 0,
listLoading: true,
formLoading: false,
//
filterObj: {
type: Object,
default: () => {
return {};
},
},
listQuery: {
Filters: [
{
logic: 0,
column: "",
action: 0,
value: "",
}, //
],
//OrgID:"",
SkipCount: 0,
MaxResultCount: 15,
ParentId: "",
},
listOutPutQuery: {
version: "",
ids: "",
},
page: 1,
dialogFormVisible: false,
multipleSelection: [],
formTitle: "",
drawer: false,
showExcelImport: false,
tableHeight: document.documentElement.clientHeight - 260,
isEdit: false,
};
},
mounted() {
var self = this;
window.onresize = function () {
var offsetHei = document.documentElement.clientHeight;
self.tableHeight = offsetHei - 190;
};
},
created() {
this.getList();
},
watch: {
customerInfos: {
handler(newVal) {
if (newVal == "" || newVal == "undefined") {
//TODO
} else {
newVal.forEach((element) => {
this.customerInfo.parentId = element.ParentId;
});
if (this.customerInfo.parentId != "") {
this.getList();
}
}
},
immediate: true,
},
},
computed: {
/** 列表字段 */
getDefaultField() {
var tempsTabs = [];
tempsTabs.push({
label: "版本",
prop: "version",
width: 150,
});
tempsTabs.push({
label: "零件号",
prop: "materialCode",
width: 150,
});
tempsTabs.push({ label: "零件描述", prop: "materialDesc", width: 250 });
tempsTabs.push({ label: "物料组", prop: "materialGroup", width: 220 });
tempsTabs.push({ label: "数量", prop: "wmsBillNum", width: 100 });
return tempsTabs;
},
},
methods: {
//
handleCancelBills(row) {
if (this.multipleSelection.length == 0) {
this.$message({
message: "至少选择一行!",
type: "warning",
});
return;
}
//var params = [];
var params = "";
let myalert = ""; //使
if (row) {
//
params.push(row.id);
myalert = row.name;
} else {
//
this.multipleSelection.forEach((element) => {
let id = element.id;
//params.push(id);
params += id + ",";
});
myalert = "选中项";
}
this.listOutPutQuery.version = row.version;
this.listOutPutQuery.ids = params.substr(0, params.length - 1);
this.$confirm("是否确认取消出库" + myalert + "?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$axios
.posts(
"/api/settleaccount/wmsjitoutput/WmsJitOutPut-Cancel",
this.listOutPutQuery
)
.then((response) => {
const index = this.list.indexOf(row);
this.$notify({
title: "成功",
message: "操作成功",
type: "success",
duration: 2000,
});
this.getList();
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消操作",
});
});
},
//
handleCreateBills(row) {
if (this.multipleSelection.length == 0) {
this.$message({
message: "至少选择一行!",
type: "warning",
});
return;
}
//var params = [];
var params = "";
let myalert = ""; //使
if (row) {
//
params.push(row.id);
myalert = row.name;
} else {
//
this.multipleSelection.forEach((element) => {
let id = element.id;
//params.push(id);
params += id + ",";
});
myalert = "选中项";
}
this.listOutPutQuery.version = row.version;
this.listOutPutQuery.ids = params.substr(0, params.length - 1);
this.$confirm("是否确认出库" + myalert + "?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$axios
.posts(
"/api/settleaccount/wmsjitoutput/WmsJitOutPut-Pass",
this.listOutPutQuery
)
.then((response) => {
const index = this.list.indexOf(row);
this.$notify({
title: "成功",
message: "生成成功",
type: "success",
duration: 2000,
});
this.getList();
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消操作",
});
});
},
/** 刷新列表 */
handleHandle(data) {
if (data.type !== "edit") {
this.getList();
}
},
/** 格式化字段 */
fieldFormatter(row, column) {
return row[column.property] || "--";
},
importExcelData() {
//
this.showExcelImport = false;
this.getList();
},
async handleDownload() {
//await this.getDownBoms();
this.listLoading = true;
this.$axios
.gets(
"/api/settleaccount/bt-kb-not-consign/export/" +
this.customerInfo.parentId
)
.then((res) => {
let fileNameOfProject = res;
this.$axios
.BolbGets(
"/api/settleaccount/getblobfile/download/" + fileNameOfProject
)
.then((response) => {
if (fileNameOfProject.indexOf("_") != -1) {
let downName =
fileNameOfProject.slice(
0,
fileNameOfProject.lastIndexOf("_")
) +
fileNameOfProject.slice(fileNameOfProject.lastIndexOf("."));
downloadFile(response, downName);
this.$notify({
title: "成功",
message: "数据-导出成功!",
type: "success",
duration: 2000,
});
} else {
downloadFile(response, fileNameOfProject);
this.$notify({
title: "成功",
message: "数据-导出成功!",
type: "success",
duration: 2000,
});
}
this.listLoading = false;
});
});
},
getList(data) {
this.listLoading = true;
if (data != undefined) {
this.listQuery.SkipCount = (this.page - 1) * data.limit;
} else {
this.listQuery.SkipCount = (this.page - 1) * 15;
}
let filter = {
logic: 0,
column: "wmsBillNum",
action: 6,
value: this.customerInfo.parentId,
};
this.listQuery.Filters.push(filter);
//this.listQuery.ParentId = this.customerInfo.parentId;
console.log("查询条件:" + JSON.stringify(this.listQuery));
this.$axios
.posts(
"/api/settleaccount/wmsjitoutput/WmsJitDetailList",
this.listQuery
)
.then((response) => {
this.list = response.items;
//alert(JSON.stringify(response.Items))
this.totalCount = response.totalCount;
setTimeout(() => {
//
this.listLoading = false;
}, 500);
})
.catch(() => {
this.listLoading = false;
});
},
/** 筛选操作 */
handleFilter() {
this.page = 1;
this.getList();
this.listQuery.Filters = [];
if (this.searchContent != "") {
var column = "materialCode";
let filter = {
logic: 0,
column: column,
action: 6,
value: this.searchContent,
};
this.listQuery.Filters.push(filter);
}
this.getList();
},
/** 多项筛选操作 */
/** 筛选操作 */
handleFilters(data) {
if (data === null) {
this.listQuery.Filters = [];
this.getList(); //
} else {
this.filterObj = data;
console.log("筛选" + JSON.stringify(data));
var offsetHei = document.documentElement.clientHeight;
var removeHeight = Object.keys(this.filterObj).length > 0 ? 310 : 240;
this.tableHeight = offsetHei - removeHeight;
this.currentPage = 1;
let Filter = [];
data.forEach((item) => {
let filter = {};
if (item.formType === "datetime" || item.formType === "datetime") {
// (datetime >= a and datetime <=b)
filter["Column"] = item.fieldName;
filter["Logic"] = 0;
filter["Value"] = item.value[0];
filter["Action"] = item.action;
Filter.push(filter);
if (item.value[1] != null) {
filter["Value"] = item.value[1];
filter["Action"] = 5;
Filter.push(filter);
}
} else {
filter["Column"] = item.fieldName;
filter["Value"] = item.value;
filter["Logic"] = 0;
filter["Action"] = item.action;
Filter.push(filter);
}
});
console.log("筛选条件" + JSON.stringify(Filter));
this.listQuery.Filters = Filter;
this.getList();
}
},
resetQuery() {},
sortChange(data) {
const { prop, order } = data;
if (!prop || !order) {
this.handleFilter();
return;
}
this.listQuery.Sorting = prop + " " + order;
this.handleFilter();
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
/** 通过回调控制style */
cellStyle({ row, column, rowIndex, columnIndex }) {
if (
column.property === "fisQty" ||
column.property === "diffQty" ||
column.property === "stockQty"
) {
return { textAlign: "right" };
} else {
return { textAlign: "left" };
}
},
/** 通过回调控制表头style */
headerRowStyle({ row, column, rowIndex, columnIndex }) {
if (
column.property === "fisQty" ||
column.property === "diffQty" ||
column.property === "stockQty"
) {
return { textAlign: "right", background: "#FAFAFA" };
} else {
return { textAlign: "left", background: "#FAFAFA" };
}
},
handleRowClick(row, column, event) {
this.$refs.multipleTable.clearSelection();
this.$refs.multipleTable.toggleRowSelection(row);
},
},
};
</script>
<style lang="scss" scoped>
@import "../../styles/crmtable.scss";
</style>

317
vue/src/views/ux/billManage/kanbanOutOrder/index.vue

@ -0,0 +1,317 @@
<!--轿车看板-发出未结算-->
<template>
<div class="cr-body-content">
<flexbox class="content-header">
<el-input
v-model="searchContent"
clearable
size="small"
placeholder="按照版本号搜索..."
style="width: 200px"
class="search-container"
@keyup.enter.native="handleFilter"
/>
<el-button
size="mini"
type="success"
icon="el-icon-search"
@click="handleFilter"
>搜索
</el-button>
</flexbox>
<!--表格渲染-->
<el-table
ref="multipleTable"
v-loading="listLoading"
element-loading-text="拼命加载中..."
element-loading-spinner="el-icon-loading"
class="cr-table"
:data="list"
:height="tableHeight"
:cell-style="cellStyle"
size="small"
stripe
border
highlight-current-row
style="width: 100%"
@sort-change="sortChange"
@selection-change="handleSelectionChange"
@row-click="handleRowClick"
>
<el-table-column
label="单据号"
prop="billNum"
sortable="custom"
align="center"
width="250px"
>
<template slot-scope="scope">
<el-tooltip :content="scope.row.billNum" placement="bottom-end">
<span class="link-type" @click="handleDrawerOpen(scope.row)">{{
scope.row.billNum
}}</span>
</el-tooltip>
</template>
</el-table-column>
<!-- <el-table-column type="selection" width="44px"></el-table-column> -->
<el-table-column
v-for="(item, index) in getDefaultField"
:key="index"
:prop="item.prop"
:label="item.label"
:min-width="item.width"
:formatter="fieldFormatter"
sortable="custom"
show-overflow-tooltip
:gutter="0"
>
<template slot="header" slot-scope="scope">
{{ scope.column.label }}
</template>
</el-table-column>
</el-table>
<div class="table-footer">
<!-- 分页控件 style="margin-top: -25px;margin-bottom:-25px;float:right;"-->
<pagination
v-show="totalCount > 0"
:total="totalCount"
:page.sync="page"
:limit.sync="listQuery.MaxResultCount"
@pagination="getList"
/>
<!-- 抽屉控件 -->
<el-drawer
title="信息详细页"
size="75%"
direction="rtl"
:visible.sync="drawer"
:before-close="handleDrawerClose"
>
<div>
<Detail
v-bind:customerInfos="customerInfos"
style="margin-top: -35px"
></Detail>
</div>
</el-drawer>
</div>
</div>
</template>
<script>
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
import permission from "@/directive/permission/index.js";
import Detail from "./detail";
import moment from "moment";
import { formatTimeToTimestamp } from "@/utils/index";
export default {
name: "sendUnsettledDiffReport",
components: { Pagination, Detail },
directives: { permission },
data() {
return {
crmType: "sendUnsettledDiffReport",
rules: {
// version: [{ required: true, message: "", trigger: "change" }],
// beginTime: [{ required: true, message: "", trigger: "change" }],
// endTime: [{ required: true, message: "", trigger: "change" }],
},
customerInfos: [],
searchContent: "", //
drawer: false,
form: {
version: "",
customerCode: "",
customerName: "",
beginTime: "",
endTime: "",
},
versionValue: "",
versionList: [],
startTimeVale: "",
endTimeVale: "",
list: null,
totalCount: 0,
listLoading: true,
formLoading: false,
//
filterObj: {
type: Object,
default: () => {
return {};
},
},
listQuery: {
Filters: [
{
logic: 0,
column: "Enabled",
action: 0,
value: "true",
}, //
],
//OrgID:"",
SkipCount: 0,
MaxResultCount: 15,
},
page: 1,
dialogFormVisible: false,
multipleSelection: [],
formTitle: "",
drawer: false,
showExcelImport: false,
tableHeight: document.documentElement.clientHeight - 200,
isEdit: false,
};
},
mounted() {
var self = this;
window.onresize = function () {
var offsetHei = document.documentElement.clientHeight;
self.tableHeight = offsetHei - 200;
};
},
created() {
this.getList();
//this.getVersionInfo();
},
computed: {
/** 列表字段 */
getDefaultField() {
var tempsTabs = [];
tempsTabs.push({
label: "版本",
prop: "version",
width: 120,
});
//tempsTabs.push({ label: "", prop: "billNum", width: 150 });
tempsTabs.push({ label: "创建人", prop: "creator", width: 160 });
tempsTabs.push({ label: "创建时间", prop: "creationTime", width: 160 });
tempsTabs.push({ label: "备注", prop: "remark", width: 120 });
return tempsTabs;
},
},
methods: {
getVersionInfo() {
//
this.listLoading = true;
this.listQuery.SkipCount = (this.page - 1) * 1000;
this.$axios
.posts("/api/settleaccount/CentralizedControl/openlist")
.then((response) => {
this.versionList = [];
response.forEach((element) => {
let options = {};
options.value = element.version;
options.label = element.version;
this.versionList.push(options);
});
})
.catch(() => {
this.listLoading = false;
});
},
//
handleDrawerOpen(param) {
this.drawer = true;
var parentId = param.billNum; //
this.customerInfos = [
{
ParentId: parentId,
},
];
},
handleDrawerClose(done) {
done();
},
/** 格式化字段 */
fieldFormatter(row, column) {
if (column.property == "creationTime") {
var date = row[column.property];
if (date == undefined) {
return "";
}
return moment(date).format("YYYY-MM-DD HH:mm:ss");
}
if (column.property == "documentStatus") {
return { 0: "新建", 1: "进行中", 5: "完成", 9: "取消" }[
row[column.property]
];
}
return row[column.property] || "--";
},
importExcelData() {
//
this.showExcelImport = false;
this.getList();
},
getList(data) {
this.listLoading = true;
if (data != undefined) {
this.listQuery.SkipCount = (this.page - 1) * data.limit;
} else {
this.listQuery.SkipCount = (this.page - 1) * 15;
}
this.$axios
.posts("/api/settleaccount/wmsjitoutput/WmsJitList", this.listQuery)
.then((response) => {
this.list = response.items;
//alert(JSON.stringify(response.Items))
this.totalCount = response.totalCount;
setTimeout(() => {
//
this.listLoading = false;
}, 500);
})
.catch(() => {
this.listLoading = false;
});
},
/** 筛选操作 */
handleFilter() {
this.page = 1;
this.getList();
this.listQuery.Filters = [];
if (this.searchContent != "") {
var column = "version";
let filter = {
logic: 0,
column: column,
action: 0,
value: this.searchContent,
};
this.listQuery.Filters.push(filter);
}
this.getList();
},
resetQuery() {},
sortChange(data) {
const { prop, order } = data;
if (!prop || !order) {
this.handleFilter();
return;
}
this.listQuery.Sorting = prop + " " + order;
this.handleFilter();
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
/** 通过回调控制style */
cellStyle({ row, column, rowIndex, columnIndex }) {
return { textAlign: "left" };
},
handleRowClick(row, column, event) {
this.$refs.multipleTable.clearSelection();
this.$refs.multipleTable.toggleRowSelection(row);
},
},
};
</script>
<style lang="scss" scoped>
@import "../../styles/crmtable.scss";
</style>

254
vue/src/views/ux/billManage/sparePart/index.vue

@ -35,6 +35,14 @@
@click="handleCreateBills()"
>生成出库单(支持批量)</el-button
>
<el-button
class="filter-item"
type="success"
icon="el-icon-check"
size="mini"
@click="handleConfirm()"
>已确认</el-button
>
</flexbox>
</div>
<!-- 刷新 -->
@ -396,17 +404,24 @@
<el-select
v-model="formCount.materialGroupValue"
size="medium"
multiple
filterable
clearable
style="width: 188px; margin-right: 15px"
style="width: 380px; margin-right: 15px"
@change="valueChange"
placeholder="请选择"
>
<el-option
v-for="item in materialGroupList"
:key="item.value"
:label="item.label"
:label="item.value"
:value="item.value"
></el-option>
>
<span style="float: left">{{ item.label }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{
item.value
}}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
@ -416,17 +431,30 @@
<el-col :md="4" :xs="24">
<el-form-item label="CP5时间:" />
</el-col>
<el-col :md="20" :xs="24" style="margin-left: -80px">
<el-col :md="10" :xs="24" style="margin-left: -80px">
<el-form-item>
<el-date-picker
v-model="datetime5"
type="datetimerange"
:picker-options="pickerOptionsCp5"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
v-model="cp5startTime"
:picker-options="pickerOptions2"
type="datetime"
size="small"
@change="getdateValueCp5"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00', '23:59:59']"
default-time="00:00:00"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :md="10" :xs="24" style="margin-left: -40px">
<el-form-item>
<el-date-picker
v-model="cp5endTime"
:picker-options="pickerOptions3"
type="datetime"
size="small"
@change="getdateValCp5"
value-format="yyyy-MM-dd HH:mm:ss"
default-time="23:59:59"
>
</el-date-picker>
</el-form-item>
@ -471,37 +499,60 @@
<el-form-item label="KEEN号" />
</el-col>
<el-col :md="10" :xs="24" style="margin-left: -80px">
<el-form-item>
<el-input v-model="formCount.kennCode" />
<el-form-item prop="kennCode">
<el-input
type="textarea"
v-model="formCount.kennCode"
style="width: 170px"
:rows="4"
placeholder="多个KENN号,请以回车换行形式添加!"
/>
</el-form-item>
</el-col>
<el-col :md="4" :xs="24">
<el-form-item label="底盘号" />
</el-col>
<el-col :md="10" :xs="24" style="margin-left: -95px">
<el-form-item>
<el-input v-model="formCount.chassisNumber" />
<el-form-item prop="chassisNumber">
<el-input
v-model="formCount.chassisNumber"
style="width: 170px"
type="textarea"
:rows="4"
placeholder="多个底盘号,请以回车换行形式添加!"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :md="4" :xs="24">
<el-form-item label="客户零件号" />
</el-col>
<el-col :md="10" :xs="24" style="margin-left: -80px">
<el-form-item>
<el-input v-model="formCount.materialCode" />
<el-form-item prop="materialCode">
<el-input
v-model="formCount.materialCode"
style="width: 170px"
type="textarea"
:rows="4"
placeholder="多个客户零件号,请以回车换行形式添加!"
/>
</el-form-item>
</el-col>
<!-- <el-col :md="4" :xs="24">
<el-form-item label="客户零件号" />
<el-col :md="4" :xs="24">
<el-form-item label="厂内零件号" />
</el-col>
<el-col :md="10" :xs="24" style="margin-left: -95px">
<el-form-item>
<el-input v-model="formCount.sapMaterialCode" />
<el-form-item prop="sapCode">
<el-input
v-model="formCount.sapCode"
style="width: 170px"
type="textarea"
:rows="4"
placeholder="多个厂内零件号,请以回车换行形式添加!"
/>
</el-form-item>
</el-col> -->
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
@ -565,6 +616,25 @@ export default {
return time.getTime() <= new Date(this.startTime).getTime();
},
},
pickerOptions1: {
disabledDate: (time) => {
//return time.getTime() <= new Date(this.startTime).getTime() || time.getTime() > Date.now();
return time.getTime() <= new Date(this.startTime).getTime();
},
},
pickerOptions2: {
disabledDate: (time) => {
//if (this.endTime != "") {
return time.getTime() > new Date(this.cp5endTime).getTime();
//}
},
},
pickerOptions3: {
disabledDate: (time) => {
return time.getTime() <= new Date(this.cp5startTime).getTime();
},
},
startTime: "",
endTime: "",
pickerOptionsCp7: {
@ -589,6 +659,7 @@ export default {
radio: "0", //0 1
versionList: [],
materialGroupList: [],
getmaterialGroupValue: "",
//
openView: false,
versionValue: "",
@ -618,16 +689,20 @@ export default {
searchContent: "", //
form: {},
formCount: {
name: "未结算对比",
// datetime5: [],
// datetime7: [],
settledate: "",
materialCode: "",
sapMaterialCode: "",
chassisNumber: "",
kennCode: "",
version: "",
startTime: "",
endTime: "",
cp5startTime: "",
cp5endTime: "",
// name: "",
// settledate: "",
// materialCode: "",
// sapMaterialCode: "",
// chassisNumber: "",
// kennCode: "",
// version: "",
},
cp5startTime: "",
cp5endTime: "",
list: null,
totalCount: 0,
listLoading: true,
@ -707,12 +782,12 @@ export default {
tempsTabs.push({
label: "版本号",
prop: "type",
width: 85,
width: 120,
});
tempsTabs.push({
label: "单据流水号",
prop: "taskId",
width: 85,
width: 130,
});
tempsTabs.push({
label: "模块名称",
@ -734,20 +809,24 @@ export default {
prop: "remark",
width: 220,
});
// tempsTabs.push({
// label: "",
// prop: "actionName",
// width: 120,
// });
// tempsTabs.push({
// label: "",
// prop: "stateName",
// width: 100,
// });
tempsTabs.push({
label: "审批状态",
prop: "fileName",
width: 150,
});
return tempsTabs;
},
},
methods: {
//cp5
getdateValueCp5(val) {
this.cp5startTime = val;
this.getbalanceIndexData();
},
getdateValCp5(val) {
this.cp5endTime = val;
this.getbalanceIndexData();
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
@ -800,6 +879,54 @@ export default {
});
});
},
handleConfirm(row) {
if (this.multipleSelection.length == 0) {
this.$message({
message: "至少选择一行!",
type: "warning",
});
return;
}
var params = [];
let myalert = ""; //使
if (row) {
//
params.push(row.id);
myalert = row.name;
} else {
//
this.multipleSelection.forEach((element) => {
let id = element.id;
params.push(id);
});
myalert = "选中项";
}
this.$confirm("是否确认" + myalert + "?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$axios
.posts("/api/settleaccounWmsJitOutPutt/wms/", params)
.then((response) => {
const index = this.list.indexOf(row);
this.$notify({
title: "成功",
message: "生成成功",
type: "success",
duration: 2000,
});
this.getList();
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消操作",
});
});
},
//
handleCreateBills(row) {
if (this.multipleSelection.length == 0) {
@ -934,20 +1061,20 @@ export default {
this.listLoading = false;
});
},
//
getMaterialGroup() {
this.$axios
.posts("/api/settleaccount/CodeSetting/list", {
project: "物料组",
maxResultCount: 1000,
skipCount: 0,
sorting: "value ascending",
})
.then((response) => {
this.materialGroupList = [];
response.items.forEach((element) => {
let options = {};
options.value = element.description;
options.label = element.description;
options.label = element.value;
this.materialGroupList.push(options);
});
})
@ -961,7 +1088,8 @@ export default {
this.datetime5 = [];
this.startTime = "";
this.endTime = "";
// this.datetime7 = [];
this.cp5startTime = "";
this.cp5endTime = "";
},
save() {
this.$refs.formCount.validate((valid) => {
@ -971,22 +1099,18 @@ export default {
if (this.formCount.materialCode != "") {
this.listExportQuery.materialCode = this.formCount.materialCode; //
}
// if (this.formCount.sapMaterialCode != "") {
// this.listExportQuery.sapMaterialCode = this.formCount.sapMaterialCode; //
// }
if (this.formCount.sapCode != "") {
this.listExportQuery.sapCode = this.formCount.sapCode; //
}
if (this.formCount.kennCode != "") {
this.listExportQuery.kenncode = this.formCount.kennCode; //KEEN
}
var getdate5 = JSON.stringify(this.datetime5);
if (getdate5 != "[]") {
alert(this.datetime5[0]);
this.listExportQuery.begin = this.datetime5
? this.datetime5[0] || undefined
: undefined;
this.listExportQuery.end = this.datetime5
? this.datetime5[1] || undefined
: undefined;
}
this.listExportQuery.begin = this.cp5startTime
? this.cp5startTime
: undefined;
this.listExportQuery.end = this.cp5endTime
? this.cp5endTime
: undefined;
if (this.startTime != "") {
this.listExportQuery.cp7begin = this.startTime; //CP7
}
@ -997,8 +1121,7 @@ export default {
this.listExportQuery.chassisNumber = this.formCount.chassisNumber; //
}
if (this.formCount.materialGroupValue != "") {
this.listExportQuery.materialGroup =
this.formCount.materialGroupValue; //
this.listExportQuery.materialGroup = this.getmaterialGroupValue; //
}
console.log(
"大众备件结算核对-导出条件:" + JSON.stringify(this.listExportQuery)
@ -1036,6 +1159,11 @@ export default {
this.formTitle = "报表统计";
this.isEdit = false;
this.form = {};
this.datetime5 = [];
this.startTime = "";
this.endTime = "";
this.cp5startTime = "";
this.cp5endTime = "";
this.dialogFormVisible = true;
},
filterHandler(value, row, column) {
@ -1150,7 +1278,7 @@ export default {
getList() {
this.listLoading = true;
//
this.listQuery.name = "大众准时化结算门板价格差异比对报表";
this.listQuery.name = "备件结算数量差异输出";
this.$axios
.posts("/api/settleaccount/Job/list", this.listQuery)
.then((response) => {

616
vue/src/views/ux/billManage/vwOutOrder/detail.vue

@ -0,0 +1,616 @@
<!--FIS发运数据对比输出表-明细数据-->
<template>
<div class="cr-body-content">
<flexbox class="content-header">
<!-- <el-button
class="filter-item"
size="mini"
type="info"
icon="el-icon-download"
@click="handleDownload()"
>导出全部
</el-button> -->
<JobSelectVerson
:options="JobVersionList"
style="width: 150px; margin-left: -10px"
class="search-container"
@value-change="JobVersionValue"
></JobSelectVerson>
<el-button
class="filter-item"
type="success"
icon="el-icon-check"
size="mini"
@click="handleCreateBills()"
>确认出库单(支持批量)</el-button
>
<el-button
class="filter-item"
size="mini"
type="warning"
icon="el-icon-download"
@click="handleCancelBills()"
>取消出库(支持批量)
</el-button>
<el-input
v-model="searchContent"
clearable
size="small"
placeholder="按照零件号搜索..."
style="width: 230px"
class="search-container"
@keyup.enter.native="handleFilter"
/>
<el-button
size="mini"
type="success"
icon="el-icon-search"
@click="handleFilter"
>搜索
</el-button>
<!--表格头组件filter查询-->
<c-r-m-table-head
ref="crmTableHead"
:crm-type="crmType"
@handle="handleHandle"
@filter="handleFilters"
>
</c-r-m-table-head>
</flexbox>
<!--表格渲染-->
<el-table
ref="multipleTable"
v-loading="listLoading"
element-loading-text="拼命加载中..."
element-loading-spinner="el-icon-loading"
class="cr-table"
:data="list"
:height="tableHeight"
:cell-style="cellStyle"
:header-cell-style="headerRowStyle"
size="small"
stripe
border
highlight-current-row
style="width: 100%"
@sort-change="sortChange"
@selection-change="handleSelectionChange"
@row-click="handleRowClick"
>
<el-table-column type="selection" width="44px"></el-table-column>
<el-table-column
v-for="(item, index) in getDefaultField"
:key="index"
:prop="item.prop"
:label="item.label"
:min-width="item.width"
:formatter="fieldFormatter"
sortable="custom"
show-overflow-tooltip
:gutter="0"
>
<template slot="header" slot-scope="scope">
{{ scope.column.label }}
</template>
</el-table-column>
</el-table>
<div class="table-footer">
<!-- 分页控件 style="margin-top: -25px;margin-bottom:-25px;float:right;"-->
<pagination
v-show="totalCount > 0"
:total="totalCount"
:page.sync="page"
:limit.sync="listQuery.MaxResultCount"
@pagination="getList"
/>
</div>
</div>
</template>
<script>
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
import permission from "@/directive/permission/index.js";
import CRMTableHead from "../../components/CRMTableHead";
import { downloadFile } from "@/utils/crmindex.js";
import JobSelectVerson from "@/components/CreateCom/Job-Select.vue";
export default {
name: "sendUnsettledDiffReport",
components: { Pagination, CRMTableHead, CRMTableHead, JobSelectVerson },
directives: { permission },
props: {
customerInfos: {
type: Array,
default: () => {
return [];
},
},
},
data() {
return {
crmType: "vwOutOrder",
rules: {
//
erpMaterialCode: [
{ required: true, message: "必须输入!", trigger: "blur" },
],
},
searchContent: "", //
customerInfo: {
parentId: "",
version: "",
},
form: {
dicDetailID: "",
customerId: "",
projectId: "",
},
list: null,
totalCount: 0,
listLoading: true,
formLoading: false,
JobVersionList: [
{ value: "0", label: "未处理" },
{ value: "1", label: "申请出库" },
{ value: "2", label: "确认出库" },
{ value: "3", label: "不能出库" },
{ value: "4", label: "取消出库" },
],
//
filterObj: {
type: Object,
default: () => {
return {};
},
},
listQuery: {
Filters: [
{
logic: 0,
column: "Enabled",
action: 0,
value: "true",
}, //
],
SkipCount: 0,
MaxResultCount: 15,
billNum: "",
},
listOutPutQuery: {
version: "",
guids: "",
billNum: "",
},
page: 1,
JobversionValue: "",
JobversionValueVerson: "",
dialogFormVisible: false,
multipleSelection: [],
formTitle: "",
drawer: false,
showExcelImport: false,
tableHeight: document.documentElement.clientHeight - 230,
isEdit: false,
};
},
mounted() {
var self = this;
window.onresize = function () {
var offsetHei = document.documentElement.clientHeight;
self.tableHeight = offsetHei - 190;
};
},
created() {
this.getList();
},
watch: {
customerInfos: {
handler(newVal) {
if (newVal == "" || newVal == "undefined") {
//TODO
} else {
newVal.forEach((element) => {
this.customerInfo.parentId = element.ParentId;
this.customerInfo.version = element.Version;
});
if (this.customerInfo.parentId != "") {
this.getList();
}
}
},
immediate: true,
},
},
computed: {
/** 列表字段 */
getDefaultField() {
var tempsTabs = [];
tempsTabs.push({
label: "版本",
prop: "version",
width: 110,
});
tempsTabs.push({
label: "零件号",
prop: "materialCode",
width: 150,
});
tempsTabs.push({ label: "KEEN号", prop: "kennCode", width: 170 });
tempsTabs.push({ label: "底盘号", prop: "chassisNumber", width: 190 });
tempsTabs.push({ label: "零件描述", prop: "materialDesc", width: 250 });
tempsTabs.push({ label: "物料组", prop: "materialGroup", width: 220 });
tempsTabs.push({ label: "交货单号", prop: "wmsBillNum", width: 100 });
tempsTabs.push({ label: "数量", prop: "qty", width: 100 });
tempsTabs.push({ label: "状态", prop: "state", width: 100 });
return tempsTabs;
},
},
methods: {
//
JobVersionValue(params) {
//
this.listQuery.Filters = [];
var column = "state";
let filter = {
logic: 0,
column: column,
action: 0,
value: params.value,
};
this.listQuery.Filters.push(filter);
this.getList();
},
//
handleCancelBills(row) {
if (this.multipleSelection.length == 0) {
this.$message({
message: "至少选择一行!",
type: "warning",
});
return;
}
var params = [];
let myalert = ""; //使
if (row) {
//
params.push(row.id);
myalert = row.name;
} else {
//
this.multipleSelection.forEach((element) => {
let id = element.id;
params.push(id);
});
myalert = "选中项";
}
this.listOutPutQuery.version = this.customerInfo.version;
this.listOutPutQuery.guids = params;
this.listOutPutQuery.billNum = this.customerInfo.parentId;
console.log("取消出库条件:" + JSON.stringify(this.listOutPutQuery));
this.$confirm("是否确认取消出库" + myalert + "?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$axios
.posts(
"/api/settleaccount/wmsjitoutput/WmsJitOutPut-Cancel",
this.listOutPutQuery
)
.then((response) => {
const index = this.list.indexOf(row);
this.$notify({
title: "成功",
message: "操作成功",
type: "success",
duration: 2000,
});
this.getList();
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消操作",
});
});
},
//
handleCreateBills(row) {
if (this.multipleSelection.length == 0) {
this.listLoading = true;
this.listOutPutQuery.guids = [];
this.listOutPutQuery.version = this.customerInfo.version;
this.listOutPutQuery.billNum = this.customerInfo.parentId;
console.log(
"未选择时全部确认出库条件:" + JSON.stringify(this.listOutPutQuery)
);
this.$confirm("是否全部确认出库?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$axios
.posts(
"/api/settleaccount/wmsjitoutput/WmsJitOutPut-Pass",
this.listOutPutQuery
)
.then((response) => {
const index = this.list.indexOf(row);
this.$notify({
title: "成功",
message: "生成成功",
type: "success",
duration: 2000,
});
this.getList();
this.listLoading = false;
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消操作",
});
this.listLoading = false;
});
} else {
this.listLoading = true;
var params = [];
let myalert = ""; //使
if (row) {
//
params.push(row.id);
myalert = row.name;
} else {
//
this.multipleSelection.forEach((element) => {
let id = element.id;
params.push(id);
});
myalert = "选中项";
}
this.listOutPutQuery.version = this.customerInfo.version;
this.listOutPutQuery.guids = params;
this.listOutPutQuery.billNum = this.customerInfo.parentId;
console.log(
"部分选择时确认出库条件:" + JSON.stringify(this.listOutPutQuery)
);
this.$confirm("是否确认将选中的出库" + myalert + "?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$axios
.posts(
"/api/settleaccount/wmsjitoutput/WmsJitOutPut-Pass",
this.listOutPutQuery
)
.then((response) => {
const index = this.list.indexOf(row);
this.$notify({
title: "成功",
message: "生成成功",
type: "success",
duration: 2000,
});
this.getList();
this.listLoading = false;
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消操作",
});
this.listLoading = false;
});
}
},
/** 刷新列表 */
handleHandle(data) {
if (data.type !== "edit") {
this.getList();
}
},
/** 格式化字段 */
fieldFormatter(row, column) {
if (column.property == "state") {
return {
0: "未处理",
1: "申请出库",
2: "确认出库",
3: "不能出库",
4: "取消出库",
}[row[column.property]];
}
return row[column.property] || "--";
},
importExcelData() {
//
this.showExcelImport = false;
this.getList();
},
async handleDownload() {
//await this.getDownBoms();
this.listLoading = true;
this.$axios
.gets(
"/api/settleaccount/bt-kb-not-consign/export/" +
this.customerInfo.parentId
)
.then((res) => {
let fileNameOfProject = res;
this.$axios
.BolbGets(
"/api/settleaccount/getblobfile/download/" + fileNameOfProject
)
.then((response) => {
if (fileNameOfProject.indexOf("_") != -1) {
let downName =
fileNameOfProject.slice(
0,
fileNameOfProject.lastIndexOf("_")
) +
fileNameOfProject.slice(fileNameOfProject.lastIndexOf("."));
downloadFile(response, downName);
this.$notify({
title: "成功",
message: "数据-导出成功!",
type: "success",
duration: 2000,
});
} else {
downloadFile(response, fileNameOfProject);
this.$notify({
title: "成功",
message: "数据-导出成功!",
type: "success",
duration: 2000,
});
}
this.listLoading = false;
});
});
},
getList(data) {
this.listLoading = true;
if (data != undefined) {
this.listQuery.SkipCount = (this.page - 1) * data.limit;
} else {
this.listQuery.SkipCount = (this.page - 1) * 15;
}
this.listQuery.billNum = this.customerInfo.parentId;
console.log("查询条件:" + JSON.stringify(this.listQuery));
this.$axios
.posts(
"/api/settleaccount/wmsjitoutput/WmsJitDetailList",
this.listQuery
)
.then((response) => {
this.list = response.items;
//alert(JSON.stringify(response.Items))
this.totalCount = response.totalCount;
setTimeout(() => {
//
this.listLoading = false;
}, 500);
})
.catch(() => {
this.listLoading = false;
});
},
/** 筛选操作 */
handleFilter() {
this.page = 1;
this.getList();
this.listQuery.Filters = [];
if (this.searchContent != "") {
var column = "materialCode";
let filter = {
logic: 0,
column: column,
action: 6,
value: this.searchContent,
};
this.listQuery.Filters.push(filter);
}
this.getList();
},
/** 多项筛选操作 */
/** 筛选操作 */
handleFilters(data) {
if (data === null) {
this.listQuery.Filters = [];
this.getList(); //
} else {
this.filterObj = data;
console.log("筛选" + JSON.stringify(data));
var offsetHei = document.documentElement.clientHeight;
var removeHeight = Object.keys(this.filterObj).length > 0 ? 310 : 240;
this.tableHeight = offsetHei - removeHeight;
this.currentPage = 1;
let Filter = [];
data.forEach((item) => {
let filter = {};
if (item.formType === "datetime" || item.formType === "datetime") {
// (datetime >= a and datetime <=b)
filter["Column"] = item.fieldName;
filter["Logic"] = 0;
filter["Value"] = item.value[0];
filter["Action"] = item.action;
Filter.push(filter);
if (item.value[1] != null) {
filter["Value"] = item.value[1];
filter["Action"] = 5;
Filter.push(filter);
}
} else {
filter["Column"] = item.fieldName;
filter["Value"] = item.value;
filter["Logic"] = 0;
filter["Action"] = item.action;
Filter.push(filter);
}
});
console.log("筛选条件" + JSON.stringify(Filter));
this.listQuery.Filters = Filter;
this.getList();
}
},
resetQuery() {},
sortChange(data) {
const { prop, order } = data;
if (!prop || !order) {
this.handleFilter();
return;
}
this.listQuery.Sorting = prop + " " + order;
this.handleFilter();
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
/** 通过回调控制style */
cellStyle({ row, column, rowIndex, columnIndex }) {
if (
column.property === "fisQty" ||
column.property === "diffQty" ||
column.property === "stockQty"
) {
return { textAlign: "right" };
} else {
return { textAlign: "left" };
}
},
/** 通过回调控制表头style */
headerRowStyle({ row, column, rowIndex, columnIndex }) {
if (
column.property === "fisQty" ||
column.property === "diffQty" ||
column.property === "stockQty"
) {
return { textAlign: "right", background: "#FAFAFA" };
} else {
return { textAlign: "left", background: "#FAFAFA" };
}
},
handleRowClick(row, column, event) {
this.$refs.multipleTable.clearSelection();
this.$refs.multipleTable.toggleRowSelection(row);
},
},
};
</script>
<style lang="scss" scoped>
@import "../../styles/crmtable.scss";
</style>

320
vue/src/views/ux/billManage/vwOutOrder/index.vue

@ -0,0 +1,320 @@
<!--轿车看板-发出未结算-->
<template>
<div class="cr-body-content">
<flexbox class="content-header">
<el-input
v-model="searchContent"
clearable
size="small"
placeholder="按照版本号搜索..."
style="width: 200px"
class="search-container"
@keyup.enter.native="handleFilter"
/>
<el-button
size="mini"
type="success"
icon="el-icon-search"
@click="handleFilter"
>搜索
</el-button>
</flexbox>
<!--表格渲染-->
<el-table
ref="multipleTable"
v-loading="listLoading"
element-loading-text="拼命加载中..."
element-loading-spinner="el-icon-loading"
class="cr-table"
:data="list"
:height="tableHeight"
:cell-style="cellStyle"
size="small"
stripe
border
highlight-current-row
style="width: 100%"
@sort-change="sortChange"
@selection-change="handleSelectionChange"
@row-click="handleRowClick"
>
<el-table-column
label="单据号"
prop="billNum"
sortable="custom"
align="center"
width="250px"
>
<template slot-scope="scope">
<el-tooltip :content="scope.row.billNum" placement="bottom-end">
<span class="link-type" @click="handleDrawerOpen(scope.row)">{{
scope.row.billNum
}}</span>
</el-tooltip>
</template>
</el-table-column>
<!-- <el-table-column type="selection" width="44px"></el-table-column> -->
<el-table-column
v-for="(item, index) in getDefaultField"
:key="index"
:prop="item.prop"
:label="item.label"
:min-width="item.width"
:formatter="fieldFormatter"
sortable="custom"
show-overflow-tooltip
:gutter="0"
>
<template slot="header" slot-scope="scope">
{{ scope.column.label }}
</template>
</el-table-column>
</el-table>
<div class="table-footer">
<!-- 分页控件 style="margin-top: -25px;margin-bottom:-25px;float:right;"-->
<pagination
v-show="totalCount > 0"
:total="totalCount"
:page.sync="page"
:limit.sync="listQuery.MaxResultCount"
@pagination="getList"
/>
<!-- 抽屉控件 -->
<el-drawer
title="信息详细页"
size="75%"
direction="rtl"
:visible.sync="drawer"
:before-close="handleDrawerClose"
>
<div>
<Detail
v-bind:customerInfos="customerInfos"
style="margin-top: -35px"
></Detail>
</div>
</el-drawer>
</div>
</div>
</template>
<script>
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
import permission from "@/directive/permission/index.js";
import Detail from "./detail";
import moment from "moment";
import { formatTimeToTimestamp } from "@/utils/index";
export default {
name: "sendUnsettledDiffReport",
components: { Pagination, Detail},
directives: { permission },
data() {
return {
crmType: "sendUnsettledDiffReport",
rules: {
// version: [{ required: true, message: "", trigger: "change" }],
// beginTime: [{ required: true, message: "", trigger: "change" }],
// endTime: [{ required: true, message: "", trigger: "change" }],
},
customerInfos: [],
searchContent: "", //
drawer: false,
form: {
version: "",
customerCode: "",
customerName: "",
beginTime: "",
endTime: "",
},
versionValue: "",
versionList: [],
startTimeVale: "",
endTimeVale: "",
list: null,
totalCount: 0,
listLoading: true,
formLoading: false,
//
filterObj: {
type: Object,
default: () => {
return {};
},
},
listQuery: {
Filters: [
{
logic: 0,
column: "Enabled",
action: 0,
value: "true",
}, //
],
//OrgID:"",
SkipCount: 0,
MaxResultCount: 15,
},
page: 1,
dialogFormVisible: false,
multipleSelection: [],
formTitle: "",
drawer: false,
showExcelImport: false,
tableHeight: document.documentElement.clientHeight - 200,
isEdit: false,
};
},
mounted() {
var self = this;
window.onresize = function () {
var offsetHei = document.documentElement.clientHeight;
self.tableHeight = offsetHei - 200;
};
},
created() {
this.getList();
//this.getVersionInfo();
},
computed: {
/** 列表字段 */
getDefaultField() {
var tempsTabs = [];
tempsTabs.push({
label: "版本",
prop: "version",
width: 120,
});
//tempsTabs.push({ label: "", prop: "billNum", width: 150 });
tempsTabs.push({ label: "创建人", prop: "creator", width: 160 });
tempsTabs.push({ label: "创建时间", prop: "creationTime", width: 160 });
tempsTabs.push({ label: "备注", prop: "remark", width: 120 });
return tempsTabs;
},
},
methods: {
getVersionInfo() {
//
this.listLoading = true;
this.listQuery.SkipCount = (this.page - 1) * 1000;
this.$axios
.posts("/api/settleaccount/CentralizedControl/openlist")
.then((response) => {
this.versionList = [];
response.forEach((element) => {
let options = {};
options.value = element.version;
options.label = element.version;
this.versionList.push(options);
});
})
.catch(() => {
this.listLoading = false;
});
},
//
handleDrawerOpen(param) {
this.drawer = true;
var parentId = param.billNum; //
var version = param.version; //
this.customerInfos = [
{
ParentId: parentId,
Version: version,
},
];
},
handleDrawerClose(done) {
done();
},
/** 格式化字段 */
fieldFormatter(row, column) {
if (column.property == "creationTime") {
var date = row[column.property];
if (date == undefined) {
return "";
}
return moment(date).format("YYYY-MM-DD HH:mm:ss");
}
if (column.property == "state") {
return { 0: "已提交", 1: "已出库", 2: "不能出库" }[
row[column.property]
];
}
return row[column.property] || "--";
},
importExcelData() {
//
this.showExcelImport = false;
this.getList();
},
getList(data) {
this.listLoading = true;
if (data != undefined) {
this.listQuery.SkipCount = (this.page - 1) * data.limit;
} else {
this.listQuery.SkipCount = (this.page - 1) * 15;
}
this.$axios
.posts("/api/settleaccount/wmsjitoutput/WmsJitList", this.listQuery)
.then((response) => {
this.list = response.items;
//alert(JSON.stringify(response.Items))
this.totalCount = response.totalCount;
setTimeout(() => {
//
this.listLoading = false;
}, 500);
})
.catch(() => {
this.listLoading = false;
});
},
/** 筛选操作 */
handleFilter() {
this.page = 1;
this.getList();
this.listQuery.Filters = [];
if (this.searchContent != "") {
var column = "version";
let filter = {
logic: 0,
column: column,
action: 0,
value: this.searchContent,
};
this.listQuery.Filters.push(filter);
}
this.getList();
},
resetQuery() {},
sortChange(data) {
const { prop, order } = data;
if (!prop || !order) {
this.handleFilter();
return;
}
this.listQuery.Sorting = prop + " " + order;
this.handleFilter();
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
/** 通过回调控制style */
cellStyle({ row, column, rowIndex, columnIndex }) {
return { textAlign: "left" };
},
handleRowClick(row, column, event) {
this.$refs.multipleTable.clearSelection();
this.$refs.multipleTable.toggleRowSelection(row);
},
},
};
</script>
<style lang="scss" scoped>
@import "../../styles/crmtable.scss";
</style>

594
vue/src/views/ux/vw/dataInput/hq_bt/index.vue

@ -0,0 +1,594 @@
<!--红旗H平台导入功能-->
<template>
<div class="cr-body-content">
<flexbox class="content-header">
<XhJSSelect
:options="versionList"
style="width: 200px"
class="search-container"
@value-change="selectValue"
></XhJSSelect>
<el-button
class="filter-item"
size="mini"
type="warning"
icon="el-icon-upload2"
@click="handleImportExcel()"
>导入文件Excel
</el-button>
<!-- <el-button
class="filter-item"
size="mini"
type="primary"
icon="el-icon-download"
@click="handleDownload()"
>导出Excel
</el-button> -->
<el-dropdown
size="small"
class="filter-item"
style="margin-left: 15px; font-weight: bold"
@command="handleCommand"
>
<span class="el-dropdown-link">
导出数据<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="excel" icon="el-icon-plus"
>导出Excel</el-dropdown-item
>
<el-dropdown-item command="csv" icon="el-icon-circle-plus"
>导出Csv</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
<el-input
v-model="searchContent"
clearable
size="small"
placeholder="按照采购订单号搜索..."
style="width: 200px"
class="search-container"
@keyup.enter.native="handleFilter"
/>
<el-button
size="mini"
type="success"
icon="el-icon-search"
@click="handleFilter"
>搜索
</el-button>
<!--表格头组件filter查询-->
<c-r-m-table-head
ref="crmTableHead"
:crm-type="crmType"
@handle="handleHandle"
@filter="handleFilters"
>
</c-r-m-table-head>
</flexbox>
<!--表格渲染-->
<el-table
ref="multipleTable"
v-loading.fullscreen.lock="listLoading"
element-loading-text="拼命加载中..."
element-loading-spinner="el-icon-loading"
class="cr-table"
:data="list"
:height="tableHeight"
:cell-style="cellStyle"
:header-cell-style="headerRowStyle"
size="small"
stripe
border
highlight-current-row
style="width: 100%"
@sort-change="sortChange"
@selection-change="handleSelectionChange"
@row-click="handleRowClick"
>
<!-- <el-table-column type="selection" width="44px"></el-table-column> -->
<el-table-column
label="版本"
prop="version"
sortable="custom"
align="center"
width="100px"
fixed
>
<template slot-scope="scope">
<el-tooltip :content="scope.row.version" placement="top">
<span class="link-type">{{ scope.row.version }}</span>
</el-tooltip>
</template>
</el-table-column>
<el-table-column
v-for="(item, index) in getDefaultField"
:key="index"
:prop="item.prop"
:label="item.label"
:min-width="item.width"
:formatter="fieldFormatter"
sortable="custom"
show-overflow-tooltip
:gutter="0"
>
<template slot="header" slot-scope="scope">
{{ scope.column.label }}
</template>
</el-table-column>
</el-table>
<div class="table-footer">
<!-- 分页控件 style="margin-top: -25px;margin-bottom:-25px;float:right;"-->
<pagination
v-show="totalCount > 0"
:total="totalCount"
:page.sync="page"
:limit.sync="listQuery.MaxResultCount"
@pagination="getList"
/>
<!-- 导入Excel组件 -->
<importExcel
ref="importexcel"
:show="showExcelImport"
:crmType="crmType"
@close="importExcelData"
/>
</div>
</div>
</template>
<script>
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
import permission from "@/directive/permission/index.js";
import importExcel from "@/components/ImportExcel-base";
import CRMTableHead from "../../../components/CRMTableHead";
import moment from "moment";
import Lockr from "lockr";
import { downloadFile } from "@/utils/crmindex.js";
import XhJSSelect from "@/components/CreateCom/Xh-JS-Select-Label.vue";
export default {
name: "HQHPlatform",
components: { Pagination, CRMTableHead, importExcel, XhJSSelect },
directives: { permission },
filters: {
IsCustomerSignFilter(status) {
//
const statusMap = {
true: "是",
false: "否",
};
return statusMap[status];
},
},
props: {
customerInfos: {
type: Array,
default: () => {
return [];
},
},
},
data() {
return {
crmType: "hqHPlatform",
versionValue: "",
versionList: [], //
rules: {
//
erpMaterialCode: [
{ required: true, message: "必须输入!", trigger: "blur" },
],
},
searchContent: "", //
customerInfo: {
settleAccountId: "",
},
form: {
dicDetailID: "",
customerId: "",
projectId: "",
},
list: null,
totalCount: 0,
listLoading: true,
formLoading: true,
//
filterObj: {
type: Object,
default: () => {
return {};
},
},
listVersionQuery: {
SkipCount: 0,
MaxResultCount: 15,
},
listQuery: {
Filters: [
{
logic: 0,
column: "Enabled",
action: 0,
value: "true",
}, //
],
//OrgID:"",
SkipCount: 0,
MaxResultCount: 15,
version: "",
site: "TH",
userId: "00000000-0000-0000-0000-000000000000",
},
listExportQuery: {
Filters: [
{
logic: 0,
column: "Enabled",
action: 0,
value: "true",
}, //
],
//OrgID:"",
SkipCount: 0,
MaxResultCount: 15,
version: "",
fileType: 0,
userId: "",
},
page: 1,
dialogFormVisible: false,
multipleSelection: [],
formTitle: "",
drawer: false,
showExcelImport: false,
tableHeight: document.documentElement.clientHeight - 220,
isEdit: false,
};
},
mounted() {
var self = this;
window.onresize = function () {
var offsetHei = document.documentElement.clientHeight;
self.tableHeight = offsetHei - 220;
};
},
created() {
this.getVersionInfo();
if (this.versionList == []) {
this.getList();
}
},
computed: {
/** 列表字段 */
getDefaultField() {
var tempsTabs = [];
tempsTabs.push({ label: "行号", prop: "lineNumber", width: 100 });
tempsTabs.push({ label: "采购类型", prop: "purchaseType", width: 150 });
tempsTabs.push({
label: "采购订单号",
prop: "purchaseOrderNo",
width: 220,
});
tempsTabs.push({
label: "采购订单行项目",
prop: "purchaseOrderNoItem",
width: 170,
});
tempsTabs.push({
label: "采购订单文本",
prop: "purchaseOrderNoText",
width: 170,
});
tempsTabs.push({ label: "收货数量", prop: "receiptQty", width: 120 });
tempsTabs.push({ label: "开票数量", prop: "invoicedQty", width: 120 });
tempsTabs.push({ label: "不含税金额", prop: "amountNoTax", width: 150 });
tempsTabs.push({
label: "采购价格不含税",
prop: "purchasePriceNoTax",
width: 200,
});
tempsTabs.push({ label: "科目号", prop: "accountNum", width: 150 });
tempsTabs.push({ label: "物料代码", prop: "materialCode", width: 180 });
tempsTabs.push({ label: "物料描述", prop: "materialDesc", width: 250 });
tempsTabs.push({
label: "日期",
prop: "spareDate",
width: 150,
formType: "datetime",
});
tempsTabs.push({
label: "交货单号",
prop: "deliveryOrderNo",
width: 150,
});
tempsTabs.push({
label: "交货行号",
prop: "deliveryLineNum",
width: 150,
});
tempsTabs.push({ label: "批次号", prop: "batchNo", width: 150 });
tempsTabs.push({ label: "税率", prop: "taxRate", width: 100 });
tempsTabs.push({ label: "税码", prop: "taxCode", width: 110 });
tempsTabs.push({
label: "德国发票号",
prop: "germanInvoiceNo",
width: 150,
});
tempsTabs.push({ label: "工厂", prop: "factory", width: 150 });
tempsTabs.push({ label: "工厂名称", prop: "factoryName", width: 220 });
return tempsTabs;
},
},
methods: {
handleCommand(command) {
if (this.versionValue === "") {
this.$message.error("请先选择版本!");
return;
}
switch (command) {
case "excel":
this.listQuery.fileType = 1; //0csv,1excel
break;
case "csv":
this.listQuery.fileType = 0; //0csv,1excel
break;
default:
//
break;
}
this.listLoading = true;
if (this.versionValue === "") {
this.$message.error("必需选择版本!");
this.listLoading = false;
return;
}
if (this.versionValue != "") {
this.listQuery.version = this.versionValue;
}
console.log("红旗H平台导出:" + JSON.stringify(this.listQuery));
this.$axios
.posts("/api/settleaccount/HQHPlatform/Export", this.listQuery)
.then((res) => {
let fileNameOfProject = res;
this.$axios
.BolbGets(
"/api/settleaccount/getblobfile/download/" + fileNameOfProject
)
.then((response) => {
if (fileNameOfProject.indexOf("_") != -1) {
let downName =
fileNameOfProject.slice(
0,
fileNameOfProject.lastIndexOf("_")
) +
fileNameOfProject.slice(fileNameOfProject.lastIndexOf("."));
downloadFile(response, downName);
this.$notify({
title: "成功",
message: "数据-导出成功!",
type: "success",
duration: 2000,
});
} else {
downloadFile(response, fileNameOfProject);
this.$notify({
title: "成功",
message: "数据-导出成功!",
type: "success",
duration: 2000,
});
}
this.listLoading = false;
});
});
},
selectValue(params) {
//
this.versionValue = params.value;
this.getList();
},
selectOptionsChange(item) {
this.getList();
},
getVersionInfo() {
//
//this.listLoading = true;
this.listQuery.SkipCount = (this.page - 1) * 1000;
this.$axios
.posts("/api/settleaccount/HQHPlatform/listVersion", this.listQuery)
.then((response) => {
this.versionList = [];
response.items.forEach((element) => {
let options = {};
options.value = element.id;
options.label = element.version;
this.versionList.push(options);
});
if (JSON.stringify(this.versionList) != "[]") {
//
this.versionValue = this.versionList[0].label;
this.getList();
}
this.listLoading = false;
})
.catch(() => {
this.listLoading = false;
});
},
handleImportExcel() {
//
this.showExcelImport = true;
this.$refs.importexcel.handleImportExcelClick();
},
/** 刷新列表 */
handleHandle(data) {
if (data.type !== "edit") {
this.getList();
}
},
/** 格式化字段 */
fieldFormatter(row, column) {
// if (column.property === "state") {
// return { 0: "", 2: "" }[row[column.property]];
// }
if (
column.property == "settleInputDate" ||
column.property == "settleDate"
) {
var date = row[column.property];
if (date == undefined) {
return "";
}
return moment(date).format("YYYY-MM-DD HH:mm:ss");
}
return row[column.property] || "--";
},
importExcelData() {
this.getVersionInfo();
this.listLoading = false;
//
this.showExcelImport = false;
},
getList() {
this.listLoading = true;
this.listQuery.SkipCount = (this.page - 1) * 10;
if (this.versionValue != "") {
this.listQuery.version = this.versionValue;
}
console.log("列表查询条件:" + JSON.stringify(this.listQuery));
this.$axios
.posts("/api/settleaccount/HQHPlatform/list", this.listQuery)
.then((response) => {
this.list = response.items;
this.totalCount = response.totalCount;
setTimeout(() => {
//
this.listLoading = false;
}, 500);
})
.catch(() => {
this.listLoading = false;
});
},
fetchData(id) {
//
this.$axios
.gets("/api/settleaccount/HQHPlatform/" + id)
.then((response) => {
this.form = response;
});
},
/** 筛选操作 */
handleFilter() {
this.page = 1;
this.getList();
this.listQuery.Filters = [];
if (this.searchContent != "") {
var column = "purchaseOrderNo";
let filter = {
logic: 0,
column: column,
action: 0,
value: this.searchContent,
};
this.listQuery.Filters.push(filter);
}
this.getList();
},
/** 多项筛选操作 */
/** 筛选操作 */
handleFilters(data) {
if (data === null) {
this.listQuery.Filters = [];
this.getList(); //
} else {
this.filterObj = data;
console.log("筛选" + JSON.stringify(data));
var offsetHei = document.documentElement.clientHeight;
var removeHeight = Object.keys(this.filterObj).length > 0 ? 310 : 240;
this.tableHeight = offsetHei - removeHeight;
this.currentPage = 1;
let Filter = [];
data.forEach((item) => {
let filter = {};
if (item.formType === "datetime" || item.formType === "datetime") {
// (datetime >= a and datetime <=b)
filter["Column"] = item.fieldName;
filter["Logic"] = 0;
filter["Value"] = item.value[0];
filter["Action"] = item.action;
Filter.push(filter);
if (item.value[1] != null) {
filter["Value"] = item.value[1];
filter["Action"] = 5;
Filter.push(filter);
}
} else {
filter["Column"] = item.fieldName;
filter["Value"] = item.value;
filter["Logic"] = 0;
filter["Action"] = item.action;
Filter.push(filter);
}
});
console.log("筛选条件" + JSON.stringify(Filter));
this.listQuery.Filters = Filter;
this.getList();
}
},
resetQuery() {},
sortChange(data) {
const { prop, order } = data;
if (!prop || !order) {
this.handleFilter();
return;
}
this.listQuery.Sorting = prop + " " + order;
console.log(this.listQuery.Sorting);
this.handleFilter();
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
/** 通过回调控制style */
cellStyle({ row, column, rowIndex, columnIndex }) {
// if (column.property === "qty") {
// return { textAlign: "right" };
// } else {
// return { textAlign: "left" };
// }
return { textAlign: "left" };
},
/** 通过回调控制表头style */
headerRowStyle({ row, column, rowIndex, columnIndex }) {
if (column.property === "qty") {
return { textAlign: "right", background: "#FAFAFA" };
} else {
return { textAlign: "left", background: "#FAFAFA" };
}
},
handleRowClick(row, column, event) {
this.$refs.multipleTable.clearSelection();
this.$refs.multipleTable.toggleRowSelection(row);
},
},
};
</script>
<style lang="scss" scoped>
@import "../../../styles/crmtable.scss";
</style>
<style lang="scss">
.el-table .cell.el-tooltip {
white-space: pre-wrap;
}
</style>

594
vue/src/views/ux/vw/dataInput/hq_f/index.vue

@ -0,0 +1,594 @@
<!--红旗H平台导入功能-->
<template>
<div class="cr-body-content">
<flexbox class="content-header">
<XhJSSelect
:options="versionList"
style="width: 200px"
class="search-container"
@value-change="selectValue"
></XhJSSelect>
<el-button
class="filter-item"
size="mini"
type="warning"
icon="el-icon-upload2"
@click="handleImportExcel()"
>导入文件Excel
</el-button>
<!-- <el-button
class="filter-item"
size="mini"
type="primary"
icon="el-icon-download"
@click="handleDownload()"
>导出Excel
</el-button> -->
<el-dropdown
size="small"
class="filter-item"
style="margin-left: 15px; font-weight: bold"
@command="handleCommand"
>
<span class="el-dropdown-link">
导出数据<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="excel" icon="el-icon-plus"
>导出Excel</el-dropdown-item
>
<el-dropdown-item command="csv" icon="el-icon-circle-plus"
>导出Csv</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
<el-input
v-model="searchContent"
clearable
size="small"
placeholder="按照采购订单号搜索..."
style="width: 200px"
class="search-container"
@keyup.enter.native="handleFilter"
/>
<el-button
size="mini"
type="success"
icon="el-icon-search"
@click="handleFilter"
>搜索
</el-button>
<!--表格头组件filter查询-->
<c-r-m-table-head
ref="crmTableHead"
:crm-type="crmType"
@handle="handleHandle"
@filter="handleFilters"
>
</c-r-m-table-head>
</flexbox>
<!--表格渲染-->
<el-table
ref="multipleTable"
v-loading.fullscreen.lock="listLoading"
element-loading-text="拼命加载中..."
element-loading-spinner="el-icon-loading"
class="cr-table"
:data="list"
:height="tableHeight"
:cell-style="cellStyle"
:header-cell-style="headerRowStyle"
size="small"
stripe
border
highlight-current-row
style="width: 100%"
@sort-change="sortChange"
@selection-change="handleSelectionChange"
@row-click="handleRowClick"
>
<!-- <el-table-column type="selection" width="44px"></el-table-column> -->
<el-table-column
label="版本"
prop="version"
sortable="custom"
align="center"
width="100px"
fixed
>
<template slot-scope="scope">
<el-tooltip :content="scope.row.version" placement="top">
<span class="link-type">{{ scope.row.version }}</span>
</el-tooltip>
</template>
</el-table-column>
<el-table-column
v-for="(item, index) in getDefaultField"
:key="index"
:prop="item.prop"
:label="item.label"
:min-width="item.width"
:formatter="fieldFormatter"
sortable="custom"
show-overflow-tooltip
:gutter="0"
>
<template slot="header" slot-scope="scope">
{{ scope.column.label }}
</template>
</el-table-column>
</el-table>
<div class="table-footer">
<!-- 分页控件 style="margin-top: -25px;margin-bottom:-25px;float:right;"-->
<pagination
v-show="totalCount > 0"
:total="totalCount"
:page.sync="page"
:limit.sync="listQuery.MaxResultCount"
@pagination="getList"
/>
<!-- 导入Excel组件 -->
<importExcel
ref="importexcel"
:show="showExcelImport"
:crmType="crmType"
@close="importExcelData"
/>
</div>
</div>
</template>
<script>
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
import permission from "@/directive/permission/index.js";
import importExcel from "@/components/ImportExcel-base";
import CRMTableHead from "../../../components/CRMTableHead";
import moment from "moment";
import Lockr from "lockr";
import { downloadFile } from "@/utils/crmindex.js";
import XhJSSelect from "@/components/CreateCom/Xh-JS-Select-Label.vue";
export default {
name: "HQHPlatform",
components: { Pagination, CRMTableHead, importExcel, XhJSSelect },
directives: { permission },
filters: {
IsCustomerSignFilter(status) {
//
const statusMap = {
true: "是",
false: "否",
};
return statusMap[status];
},
},
props: {
customerInfos: {
type: Array,
default: () => {
return [];
},
},
},
data() {
return {
crmType: "hqHPlatform",
versionValue: "",
versionList: [], //
rules: {
//
erpMaterialCode: [
{ required: true, message: "必须输入!", trigger: "blur" },
],
},
searchContent: "", //
customerInfo: {
settleAccountId: "",
},
form: {
dicDetailID: "",
customerId: "",
projectId: "",
},
list: null,
totalCount: 0,
listLoading: true,
formLoading: true,
//
filterObj: {
type: Object,
default: () => {
return {};
},
},
listVersionQuery: {
SkipCount: 0,
MaxResultCount: 15,
},
listQuery: {
Filters: [
{
logic: 0,
column: "Enabled",
action: 0,
value: "true",
}, //
],
//OrgID:"",
SkipCount: 0,
MaxResultCount: 15,
version: "",
site: "TH",
userId: "00000000-0000-0000-0000-000000000000",
},
listExportQuery: {
Filters: [
{
logic: 0,
column: "Enabled",
action: 0,
value: "true",
}, //
],
//OrgID:"",
SkipCount: 0,
MaxResultCount: 15,
version: "",
fileType: 0,
userId: "",
},
page: 1,
dialogFormVisible: false,
multipleSelection: [],
formTitle: "",
drawer: false,
showExcelImport: false,
tableHeight: document.documentElement.clientHeight - 220,
isEdit: false,
};
},
mounted() {
var self = this;
window.onresize = function () {
var offsetHei = document.documentElement.clientHeight;
self.tableHeight = offsetHei - 220;
};
},
created() {
this.getVersionInfo();
if (this.versionList == []) {
this.getList();
}
},
computed: {
/** 列表字段 */
getDefaultField() {
var tempsTabs = [];
tempsTabs.push({ label: "行号", prop: "lineNumber", width: 100 });
tempsTabs.push({ label: "采购类型", prop: "purchaseType", width: 150 });
tempsTabs.push({
label: "采购订单号",
prop: "purchaseOrderNo",
width: 220,
});
tempsTabs.push({
label: "采购订单行项目",
prop: "purchaseOrderNoItem",
width: 170,
});
tempsTabs.push({
label: "采购订单文本",
prop: "purchaseOrderNoText",
width: 170,
});
tempsTabs.push({ label: "收货数量", prop: "receiptQty", width: 120 });
tempsTabs.push({ label: "开票数量", prop: "invoicedQty", width: 120 });
tempsTabs.push({ label: "不含税金额", prop: "amountNoTax", width: 150 });
tempsTabs.push({
label: "采购价格不含税",
prop: "purchasePriceNoTax",
width: 200,
});
tempsTabs.push({ label: "科目号", prop: "accountNum", width: 150 });
tempsTabs.push({ label: "物料代码", prop: "materialCode", width: 180 });
tempsTabs.push({ label: "物料描述", prop: "materialDesc", width: 250 });
tempsTabs.push({
label: "日期",
prop: "spareDate",
width: 150,
formType: "datetime",
});
tempsTabs.push({
label: "交货单号",
prop: "deliveryOrderNo",
width: 150,
});
tempsTabs.push({
label: "交货行号",
prop: "deliveryLineNum",
width: 150,
});
tempsTabs.push({ label: "批次号", prop: "batchNo", width: 150 });
tempsTabs.push({ label: "税率", prop: "taxRate", width: 100 });
tempsTabs.push({ label: "税码", prop: "taxCode", width: 110 });
tempsTabs.push({
label: "德国发票号",
prop: "germanInvoiceNo",
width: 150,
});
tempsTabs.push({ label: "工厂", prop: "factory", width: 150 });
tempsTabs.push({ label: "工厂名称", prop: "factoryName", width: 220 });
return tempsTabs;
},
},
methods: {
handleCommand(command) {
if (this.versionValue === "") {
this.$message.error("请先选择版本!");
return;
}
switch (command) {
case "excel":
this.listQuery.fileType = 1; //0csv,1excel
break;
case "csv":
this.listQuery.fileType = 0; //0csv,1excel
break;
default:
//
break;
}
this.listLoading = true;
if (this.versionValue === "") {
this.$message.error("必需选择版本!");
this.listLoading = false;
return;
}
if (this.versionValue != "") {
this.listQuery.version = this.versionValue;
}
console.log("红旗H平台导出:" + JSON.stringify(this.listQuery));
this.$axios
.posts("/api/settleaccount/HQHPlatform/Export", this.listQuery)
.then((res) => {
let fileNameOfProject = res;
this.$axios
.BolbGets(
"/api/settleaccount/getblobfile/download/" + fileNameOfProject
)
.then((response) => {
if (fileNameOfProject.indexOf("_") != -1) {
let downName =
fileNameOfProject.slice(
0,
fileNameOfProject.lastIndexOf("_")
) +
fileNameOfProject.slice(fileNameOfProject.lastIndexOf("."));
downloadFile(response, downName);
this.$notify({
title: "成功",
message: "数据-导出成功!",
type: "success",
duration: 2000,
});
} else {
downloadFile(response, fileNameOfProject);
this.$notify({
title: "成功",
message: "数据-导出成功!",
type: "success",
duration: 2000,
});
}
this.listLoading = false;
});
});
},
selectValue(params) {
//
this.versionValue = params.value;
this.getList();
},
selectOptionsChange(item) {
this.getList();
},
getVersionInfo() {
//
//this.listLoading = true;
this.listQuery.SkipCount = (this.page - 1) * 1000;
this.$axios
.posts("/api/settleaccount/HQHPlatform/listVersion", this.listQuery)
.then((response) => {
this.versionList = [];
response.items.forEach((element) => {
let options = {};
options.value = element.id;
options.label = element.version;
this.versionList.push(options);
});
if (JSON.stringify(this.versionList) != "[]") {
//
this.versionValue = this.versionList[0].label;
this.getList();
}
this.listLoading = false;
})
.catch(() => {
this.listLoading = false;
});
},
handleImportExcel() {
//
this.showExcelImport = true;
this.$refs.importexcel.handleImportExcelClick();
},
/** 刷新列表 */
handleHandle(data) {
if (data.type !== "edit") {
this.getList();
}
},
/** 格式化字段 */
fieldFormatter(row, column) {
// if (column.property === "state") {
// return { 0: "", 2: "" }[row[column.property]];
// }
if (
column.property == "settleInputDate" ||
column.property == "settleDate"
) {
var date = row[column.property];
if (date == undefined) {
return "";
}
return moment(date).format("YYYY-MM-DD HH:mm:ss");
}
return row[column.property] || "--";
},
importExcelData() {
this.getVersionInfo();
this.listLoading = false;
//
this.showExcelImport = false;
},
getList() {
this.listLoading = true;
this.listQuery.SkipCount = (this.page - 1) * 10;
if (this.versionValue != "") {
this.listQuery.version = this.versionValue;
}
console.log("列表查询条件:" + JSON.stringify(this.listQuery));
this.$axios
.posts("/api/settleaccount/HQHPlatform/list", this.listQuery)
.then((response) => {
this.list = response.items;
this.totalCount = response.totalCount;
setTimeout(() => {
//
this.listLoading = false;
}, 500);
})
.catch(() => {
this.listLoading = false;
});
},
fetchData(id) {
//
this.$axios
.gets("/api/settleaccount/HQHPlatform/" + id)
.then((response) => {
this.form = response;
});
},
/** 筛选操作 */
handleFilter() {
this.page = 1;
this.getList();
this.listQuery.Filters = [];
if (this.searchContent != "") {
var column = "purchaseOrderNo";
let filter = {
logic: 0,
column: column,
action: 0,
value: this.searchContent,
};
this.listQuery.Filters.push(filter);
}
this.getList();
},
/** 多项筛选操作 */
/** 筛选操作 */
handleFilters(data) {
if (data === null) {
this.listQuery.Filters = [];
this.getList(); //
} else {
this.filterObj = data;
console.log("筛选" + JSON.stringify(data));
var offsetHei = document.documentElement.clientHeight;
var removeHeight = Object.keys(this.filterObj).length > 0 ? 310 : 240;
this.tableHeight = offsetHei - removeHeight;
this.currentPage = 1;
let Filter = [];
data.forEach((item) => {
let filter = {};
if (item.formType === "datetime" || item.formType === "datetime") {
// (datetime >= a and datetime <=b)
filter["Column"] = item.fieldName;
filter["Logic"] = 0;
filter["Value"] = item.value[0];
filter["Action"] = item.action;
Filter.push(filter);
if (item.value[1] != null) {
filter["Value"] = item.value[1];
filter["Action"] = 5;
Filter.push(filter);
}
} else {
filter["Column"] = item.fieldName;
filter["Value"] = item.value;
filter["Logic"] = 0;
filter["Action"] = item.action;
Filter.push(filter);
}
});
console.log("筛选条件" + JSON.stringify(Filter));
this.listQuery.Filters = Filter;
this.getList();
}
},
resetQuery() {},
sortChange(data) {
const { prop, order } = data;
if (!prop || !order) {
this.handleFilter();
return;
}
this.listQuery.Sorting = prop + " " + order;
console.log(this.listQuery.Sorting);
this.handleFilter();
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
/** 通过回调控制style */
cellStyle({ row, column, rowIndex, columnIndex }) {
// if (column.property === "qty") {
// return { textAlign: "right" };
// } else {
// return { textAlign: "left" };
// }
return { textAlign: "left" };
},
/** 通过回调控制表头style */
headerRowStyle({ row, column, rowIndex, columnIndex }) {
if (column.property === "qty") {
return { textAlign: "right", background: "#FAFAFA" };
} else {
return { textAlign: "left", background: "#FAFAFA" };
}
},
handleRowClick(row, column, event) {
this.$refs.multipleTable.clearSelection();
this.$refs.multipleTable.toggleRowSelection(row);
},
},
};
</script>
<style lang="scss" scoped>
@import "../../../styles/crmtable.scss";
</style>
<style lang="scss">
.el-table .cell.el-tooltip {
white-space: pre-wrap;
}
</style>

4
vue/src/views/ux/vw/dataInput/hq_h/index.vue

@ -243,7 +243,7 @@ export default {
formTitle: "",
drawer: false,
showExcelImport: false,
tableHeight: document.documentElement.clientHeight - 260,
tableHeight: document.documentElement.clientHeight - 220,
isEdit: false,
};
},
@ -251,7 +251,7 @@ export default {
var self = this;
window.onresize = function () {
var offsetHei = document.documentElement.clientHeight;
self.tableHeight = offsetHei - 260;
self.tableHeight = offsetHei - 220;
};
},
created() {

594
vue/src/views/ux/vw/dataInput/hq_m/index.vue

@ -0,0 +1,594 @@
<!--红旗M平台导入功能-->
<template>
<div class="cr-body-content">
<flexbox class="content-header">
<XhJSSelect
:options="versionList"
style="width: 200px"
class="search-container"
@value-change="selectValue"
></XhJSSelect>
<el-button
class="filter-item"
size="mini"
type="warning"
icon="el-icon-upload2"
@click="handleImportExcel()"
>导入文件Excel
</el-button>
<!-- <el-button
class="filter-item"
size="mini"
type="primary"
icon="el-icon-download"
@click="handleDownload()"
>导出Excel
</el-button> -->
<el-dropdown
size="small"
class="filter-item"
style="margin-left: 15px; font-weight: bold"
@command="handleCommand"
>
<span class="el-dropdown-link">
导出数据<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="excel" icon="el-icon-plus"
>导出Excel</el-dropdown-item
>
<el-dropdown-item command="csv" icon="el-icon-circle-plus"
>导出Csv</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
<el-input
v-model="searchContent"
clearable
size="small"
placeholder="按照采购订单号搜索..."
style="width: 200px"
class="search-container"
@keyup.enter.native="handleFilter"
/>
<el-button
size="mini"
type="success"
icon="el-icon-search"
@click="handleFilter"
>搜索
</el-button>
<!--表格头组件filter查询-->
<c-r-m-table-head
ref="crmTableHead"
:crm-type="crmType"
@handle="handleHandle"
@filter="handleFilters"
>
</c-r-m-table-head>
</flexbox>
<!--表格渲染-->
<el-table
ref="multipleTable"
v-loading.fullscreen.lock="listLoading"
element-loading-text="拼命加载中..."
element-loading-spinner="el-icon-loading"
class="cr-table"
:data="list"
:height="tableHeight"
:cell-style="cellStyle"
:header-cell-style="headerRowStyle"
size="small"
stripe
border
highlight-current-row
style="width: 100%"
@sort-change="sortChange"
@selection-change="handleSelectionChange"
@row-click="handleRowClick"
>
<!-- <el-table-column type="selection" width="44px"></el-table-column> -->
<el-table-column
label="版本"
prop="version"
sortable="custom"
align="center"
width="100px"
fixed
>
<template slot-scope="scope">
<el-tooltip :content="scope.row.version" placement="top">
<span class="link-type">{{ scope.row.version }}</span>
</el-tooltip>
</template>
</el-table-column>
<el-table-column
v-for="(item, index) in getDefaultField"
:key="index"
:prop="item.prop"
:label="item.label"
:min-width="item.width"
:formatter="fieldFormatter"
sortable="custom"
show-overflow-tooltip
:gutter="0"
>
<template slot="header" slot-scope="scope">
{{ scope.column.label }}
</template>
</el-table-column>
</el-table>
<div class="table-footer">
<!-- 分页控件 style="margin-top: -25px;margin-bottom:-25px;float:right;"-->
<pagination
v-show="totalCount > 0"
:total="totalCount"
:page.sync="page"
:limit.sync="listQuery.MaxResultCount"
@pagination="getList"
/>
<!-- 导入Excel组件 -->
<importExcel
ref="importexcel"
:show="showExcelImport"
:crmType="crmType"
@close="importExcelData"
/>
</div>
</div>
</template>
<script>
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
import permission from "@/directive/permission/index.js";
import importExcel from "@/components/ImportExcel-base";
import CRMTableHead from "../../../components/CRMTableHead";
import moment from "moment";
import Lockr from "lockr";
import { downloadFile } from "@/utils/crmindex.js";
import XhJSSelect from "@/components/CreateCom/Xh-JS-Select-Label.vue";
export default {
name: "HQMPlatform",
components: { Pagination, CRMTableHead, importExcel, XhJSSelect },
directives: { permission },
filters: {
IsCustomerSignFilter(status) {
//
const statusMap = {
true: "是",
false: "否",
};
return statusMap[status];
},
},
props: {
customerInfos: {
type: Array,
default: () => {
return [];
},
},
},
data() {
return {
crmType: "hqMPlatform",
versionValue: "",
versionList: [], //
rules: {
//
erpMaterialCode: [
{ required: true, message: "必须输入!", trigger: "blur" },
],
},
searchContent: "", //
customerInfo: {
settleAccountId: "",
},
form: {
dicDetailID: "",
customerId: "",
projectId: "",
},
list: null,
totalCount: 0,
listLoading: true,
formLoading: true,
//
filterObj: {
type: Object,
default: () => {
return {};
},
},
listVersionQuery: {
SkipCount: 0,
MaxResultCount: 15,
},
listQuery: {
Filters: [
{
logic: 0,
column: "Enabled",
action: 0,
value: "true",
}, //
],
//OrgID:"",
SkipCount: 0,
MaxResultCount: 15,
version: "",
site: "TH",
userId: "00000000-0000-0000-0000-000000000000",
},
listExportQuery: {
Filters: [
{
logic: 0,
column: "Enabled",
action: 0,
value: "true",
}, //
],
//OrgID:"",
SkipCount: 0,
MaxResultCount: 15,
version: "",
fileType: 0,
userId: "",
},
page: 1,
dialogFormVisible: false,
multipleSelection: [],
formTitle: "",
drawer: false,
showExcelImport: false,
tableHeight: document.documentElement.clientHeight - 220,
isEdit: false,
};
},
mounted() {
var self = this;
window.onresize = function () {
var offsetHei = document.documentElement.clientHeight;
self.tableHeight = offsetHei - 220;
};
},
created() {
this.getVersionInfo();
if (this.versionList == []) {
this.getList();
}
},
computed: {
/** 列表字段 */
getDefaultField() {
var tempsTabs = [];
tempsTabs.push({ label: "行号", prop: "lineNumber", width: 100 });
tempsTabs.push({ label: "采购类型", prop: "purchaseType", width: 150 });
tempsTabs.push({
label: "采购订单号",
prop: "purchaseOrderNo",
width: 220,
});
tempsTabs.push({
label: "采购订单行项目",
prop: "purchaseOrderNoItem",
width: 170,
});
tempsTabs.push({
label: "采购订单文本",
prop: "purchaseOrderNoText",
width: 170,
});
tempsTabs.push({ label: "收货数量", prop: "receiptQty", width: 120 });
tempsTabs.push({ label: "开票数量", prop: "invoicedQty", width: 120 });
tempsTabs.push({ label: "不含税金额", prop: "amountNoTax", width: 150 });
tempsTabs.push({
label: "采购价格不含税",
prop: "purchasePriceNoTax",
width: 200,
});
tempsTabs.push({ label: "科目号", prop: "accountNum", width: 150 });
tempsTabs.push({ label: "物料代码", prop: "materialCode", width: 180 });
tempsTabs.push({ label: "物料描述", prop: "materialDesc", width: 250 });
tempsTabs.push({
label: "日期",
prop: "spareDate",
width: 150,
formType: "datetime",
});
tempsTabs.push({
label: "交货单号",
prop: "deliveryOrderNo",
width: 150,
});
tempsTabs.push({
label: "交货行号",
prop: "deliveryLineNum",
width: 150,
});
tempsTabs.push({ label: "批次号", prop: "batchNo", width: 150 });
tempsTabs.push({ label: "税率", prop: "taxRate", width: 100 });
tempsTabs.push({ label: "税码", prop: "taxCode", width: 110 });
tempsTabs.push({
label: "德国发票号",
prop: "germanInvoiceNo",
width: 150,
});
tempsTabs.push({ label: "工厂", prop: "factory", width: 150 });
tempsTabs.push({ label: "工厂名称", prop: "factoryName", width: 220 });
return tempsTabs;
},
},
methods: {
handleCommand(command) {
if (this.versionValue === "") {
this.$message.error("请先选择版本!");
return;
}
switch (command) {
case "excel":
this.listQuery.fileType = 1; //0csv,1excel
break;
case "csv":
this.listQuery.fileType = 0; //0csv,1excel
break;
default:
//
break;
}
this.listLoading = true;
if (this.versionValue === "") {
this.$message.error("必需选择版本!");
this.listLoading = false;
return;
}
if (this.versionValue != "") {
this.listQuery.version = this.versionValue;
}
console.log("红旗H平台导出:" + JSON.stringify(this.listQuery));
this.$axios
.posts("/api/settleaccount/HQMPlatform/Export", this.listQuery)
.then((res) => {
let fileNameOfProject = res;
this.$axios
.BolbGets(
"/api/settleaccount/getblobfile/download/" + fileNameOfProject
)
.then((response) => {
if (fileNameOfProject.indexOf("_") != -1) {
let downName =
fileNameOfProject.slice(
0,
fileNameOfProject.lastIndexOf("_")
) +
fileNameOfProject.slice(fileNameOfProject.lastIndexOf("."));
downloadFile(response, downName);
this.$notify({
title: "成功",
message: "数据-导出成功!",
type: "success",
duration: 2000,
});
} else {
downloadFile(response, fileNameOfProject);
this.$notify({
title: "成功",
message: "数据-导出成功!",
type: "success",
duration: 2000,
});
}
this.listLoading = false;
});
});
},
selectValue(params) {
//
this.versionValue = params.value;
this.getList();
},
selectOptionsChange(item) {
this.getList();
},
getVersionInfo() {
//
//this.listLoading = true;
this.listQuery.SkipCount = (this.page - 1) * 1000;
this.$axios
.posts("/api/settleaccount/HQMPlatform/listVersion", this.listQuery)
.then((response) => {
this.versionList = [];
response.items.forEach((element) => {
let options = {};
options.value = element.id;
options.label = element.version;
this.versionList.push(options);
});
if (JSON.stringify(this.versionList) != "[]") {
//
this.versionValue = this.versionList[0].label;
this.getList();
}
this.listLoading = false;
})
.catch(() => {
this.listLoading = false;
});
},
handleImportExcel() {
//
this.showExcelImport = true;
this.$refs.importexcel.handleImportExcelClick();
},
/** 刷新列表 */
handleHandle(data) {
if (data.type !== "edit") {
this.getList();
}
},
/** 格式化字段 */
fieldFormatter(row, column) {
// if (column.property === "state") {
// return { 0: "", 2: "" }[row[column.property]];
// }
if (
column.property == "settleInputDate" ||
column.property == "settleDate"
) {
var date = row[column.property];
if (date == undefined) {
return "";
}
return moment(date).format("YYYY-MM-DD HH:mm:ss");
}
return row[column.property] || "--";
},
importExcelData() {
this.getVersionInfo();
this.listLoading = false;
//
this.showExcelImport = false;
},
getList() {
this.listLoading = true;
this.listQuery.SkipCount = (this.page - 1) * 10;
if (this.versionValue != "") {
this.listQuery.version = this.versionValue;
}
console.log("列表查询条件:" + JSON.stringify(this.listQuery));
this.$axios
.posts("/api/settleaccount/HQMPlatform/list", this.listQuery)
.then((response) => {
this.list = response.items;
this.totalCount = response.totalCount;
setTimeout(() => {
//
this.listLoading = false;
}, 500);
})
.catch(() => {
this.listLoading = false;
});
},
fetchData(id) {
//
this.$axios
.gets("/api/settleaccount/HQMPlatform/" + id)
.then((response) => {
this.form = response;
});
},
/** 筛选操作 */
handleFilter() {
this.page = 1;
this.getList();
this.listQuery.Filters = [];
if (this.searchContent != "") {
var column = "purchaseOrderNo";
let filter = {
logic: 0,
column: column,
action: 0,
value: this.searchContent,
};
this.listQuery.Filters.push(filter);
}
this.getList();
},
/** 多项筛选操作 */
/** 筛选操作 */
handleFilters(data) {
if (data === null) {
this.listQuery.Filters = [];
this.getList(); //
} else {
this.filterObj = data;
console.log("筛选" + JSON.stringify(data));
var offsetHei = document.documentElement.clientHeight;
var removeHeight = Object.keys(this.filterObj).length > 0 ? 310 : 240;
this.tableHeight = offsetHei - removeHeight;
this.currentPage = 1;
let Filter = [];
data.forEach((item) => {
let filter = {};
if (item.formType === "datetime" || item.formType === "datetime") {
// (datetime >= a and datetime <=b)
filter["Column"] = item.fieldName;
filter["Logic"] = 0;
filter["Value"] = item.value[0];
filter["Action"] = item.action;
Filter.push(filter);
if (item.value[1] != null) {
filter["Value"] = item.value[1];
filter["Action"] = 5;
Filter.push(filter);
}
} else {
filter["Column"] = item.fieldName;
filter["Value"] = item.value;
filter["Logic"] = 0;
filter["Action"] = item.action;
Filter.push(filter);
}
});
console.log("筛选条件" + JSON.stringify(Filter));
this.listQuery.Filters = Filter;
this.getList();
}
},
resetQuery() {},
sortChange(data) {
const { prop, order } = data;
if (!prop || !order) {
this.handleFilter();
return;
}
this.listQuery.Sorting = prop + " " + order;
console.log(this.listQuery.Sorting);
this.handleFilter();
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
/** 通过回调控制style */
cellStyle({ row, column, rowIndex, columnIndex }) {
// if (column.property === "qty") {
// return { textAlign: "right" };
// } else {
// return { textAlign: "left" };
// }
return { textAlign: "left" };
},
/** 通过回调控制表头style */
headerRowStyle({ row, column, rowIndex, columnIndex }) {
if (column.property === "qty") {
return { textAlign: "right", background: "#FAFAFA" };
} else {
return { textAlign: "left", background: "#FAFAFA" };
}
},
handleRowClick(row, column, event) {
this.$refs.multipleTable.clearSelection();
this.$refs.multipleTable.toggleRowSelection(row);
},
},
};
</script>
<style lang="scss" scoped>
@import "../../../styles/crmtable.scss";
</style>
<style lang="scss">
.el-table .cell.el-tooltip {
white-space: pre-wrap;
}
</style>

6
vue/static/config.js

@ -2,8 +2,8 @@ let configJSON
if (process.env.NODE_ENV === 'development') {
configJSON = {
base: {
ip: 'http://192.168.0.63',
//ip: 'http://192.168.0.140',
//ip: 'http://192.168.0.63',
ip: 'http://192.168.0.140',
//ip: 'http://149.223.116.5',
auth_port: '8066',
public_port: '8092',
@ -37,7 +37,7 @@ if (process.env.NODE_ENV === 'development') {
configJSON = {
base: {
ip: 'http://192.168.0.63',
ip: 'http://192.168.0.67',
//ip: 'http://192.168.0.140',
//ip: 'http://149.223.116.5',
//ip: 'http://114.116.225.148',

173
vue/static/tableFieldForSearch.json

@ -2773,5 +2773,178 @@
"setting": []
}
]
},
"hqHPlatform": {
"id": "36",
"data": [
{
"fieldId": 3,
"formType": "text",
"name": "采购订单号",
"type": 1,
"value": "",
"fieldType": 1,
"fieldName": "purchaseOrderNo",
"setting": []
},
{
"fieldId": 5,
"formType": "text",
"name": "物料代码",
"type": 1,
"value": "",
"fieldType": 1,
"fieldName": "materialCode",
"setting": []
},
{
"fieldId": 5,
"formType": "text",
"name": "科目号",
"type": 1,
"value": "",
"fieldType": 1,
"fieldName": "accountNum",
"setting": []
},
{
"fieldId": 5,
"formType": "text",
"name": "交货单号",
"type": 1,
"value": "",
"fieldType": 1,
"fieldName": "deliveryOrderNo",
"setting": []
},
{
"fieldId": 5,
"formType": "text",
"name": "工厂",
"type": 1,
"value": "",
"fieldType": 1,
"fieldName": "factory",
"setting": []
},
{
"fieldId": 5,
"formType": "text",
"name": "工厂名称",
"type": 1,
"value": "",
"fieldType": 1,
"fieldName": "factoryName",
"setting": []
}
]
},
"hqMPlatform": {
"id": "36",
"data": [
{
"fieldId": 3,
"formType": "text",
"name": "采购订单号",
"type": 1,
"value": "",
"fieldType": 1,
"fieldName": "purchaseOrderNo",
"setting": []
},
{
"fieldId": 5,
"formType": "text",
"name": "物料代码",
"type": 1,
"value": "",
"fieldType": 1,
"fieldName": "materialCode",
"setting": []
},
{
"fieldId": 5,
"formType": "text",
"name": "科目号",
"type": 1,
"value": "",
"fieldType": 1,
"fieldName": "accountNum",
"setting": []
},
{
"fieldId": 5,
"formType": "text",
"name": "交货单号",
"type": 1,
"value": "",
"fieldType": 1,
"fieldName": "deliveryOrderNo",
"setting": []
},
{
"fieldId": 5,
"formType": "text",
"name": "工厂",
"type": 1,
"value": "",
"fieldType": 1,
"fieldName": "factory",
"setting": []
},
{
"fieldId": 5,
"formType": "text",
"name": "工厂名称",
"type": 1,
"value": "",
"fieldType": 1,
"fieldName": "factoryName",
"setting": []
}
]
},
"vwOutOrder": {
"id": "36",
"data": [
{
"fieldId": 3,
"formType": "text",
"name": "零件号",
"type": 1,
"value": "",
"fieldType": 1,
"fieldName": "materialCode",
"setting": []
},
{
"fieldId": 5,
"formType": "text",
"name": "物料组",
"type": 1,
"value": "",
"fieldType": 1,
"fieldName": "materialGroup",
"setting": []
},
{
"fieldId": 2,
"formType": "select",
"isNull": 0,
"name": "状态",
"options": "",
"type": 3,
"value": "",
"fieldType": 0,
"fieldName": "state",
"setting": [
"未处理,0",
"申请出库,1",
"确认出库,2",
"不能出库,3",
"取消出库,4"
]
}
]
}
}
Loading…
Cancel
Save