feat: 🚀 合并测试
This commit is contained in:
52
package-lock.json
generated
52
package-lock.json
generated
@@ -26,7 +26,7 @@
|
|||||||
"lodash-es": "^4.17.21",
|
"lodash-es": "^4.17.21",
|
||||||
"mitt": "^3.0.0",
|
"mitt": "^3.0.0",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"pinia": "^2.1.3",
|
"pinia": "^2.2.4",
|
||||||
"pinia-plugin-persistedstate": "^3.1.0",
|
"pinia-plugin-persistedstate": "^3.1.0",
|
||||||
"print-js": "^1.6.0",
|
"print-js": "^1.6.0",
|
||||||
"qs": "^6.11.2",
|
"qs": "^6.11.2",
|
||||||
@@ -3526,9 +3526,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/devtools-api": {
|
"node_modules/@vue/devtools-api": {
|
||||||
"version": "6.5.0",
|
"version": "6.6.4",
|
||||||
"resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz",
|
"resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
|
||||||
"integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q=="
|
"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
|
||||||
},
|
},
|
||||||
"node_modules/@vue/reactivity": {
|
"node_modules/@vue/reactivity": {
|
||||||
"version": "3.3.4",
|
"version": "3.3.4",
|
||||||
@@ -9873,12 +9873,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/pinia": {
|
"node_modules/pinia": {
|
||||||
"version": "2.1.3",
|
"version": "2.2.4",
|
||||||
"resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.1.3.tgz",
|
"resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.2.4.tgz",
|
||||||
"integrity": "sha512-XNA/z/ye4P5rU1pieVmh0g/hSuDO98/a5UC8oSP0DNdvt6YtetJNHTrXwpwsQuflkGT34qKxAEcp7lSxXNjf/A==",
|
"integrity": "sha512-K7ZhpMY9iJ9ShTC0cR2+PnxdQRuwVIsXDO/WIEV/RnMC/vmSoKDTKW/exNQYPI+4ij10UjXqdNiEHwn47McANQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/devtools-api": "^6.5.0",
|
"@vue/devtools-api": "^6.6.3",
|
||||||
"vue-demi": ">=0.14.5"
|
"vue-demi": "^0.14.10"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/posva"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@vue/composition-api": "^1.4.0",
|
"@vue/composition-api": "^1.4.0",
|
||||||
@@ -9903,9 +9906,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/pinia/node_modules/vue-demi": {
|
"node_modules/pinia/node_modules/vue-demi": {
|
||||||
"version": "0.14.5",
|
"version": "0.14.10",
|
||||||
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.5.tgz",
|
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz",
|
||||||
"integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==",
|
"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"vue-demi-fix": "bin/vue-demi-fix.js",
|
"vue-demi-fix": "bin/vue-demi-fix.js",
|
||||||
@@ -9914,6 +9917,9 @@
|
|||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
},
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/antfu"
|
||||||
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@vue/composition-api": "^1.0.0-rc.1",
|
"@vue/composition-api": "^1.0.0-rc.1",
|
||||||
"vue": "^3.0.0-0 || ^2.6.0"
|
"vue": "^3.0.0-0 || ^2.6.0"
|
||||||
@@ -17213,9 +17219,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@vue/devtools-api": {
|
"@vue/devtools-api": {
|
||||||
"version": "6.5.0",
|
"version": "6.6.4",
|
||||||
"resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz",
|
"resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
|
||||||
"integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q=="
|
"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
|
||||||
},
|
},
|
||||||
"@vue/reactivity": {
|
"@vue/reactivity": {
|
||||||
"version": "3.3.4",
|
"version": "3.3.4",
|
||||||
@@ -22253,18 +22259,18 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"pinia": {
|
"pinia": {
|
||||||
"version": "2.1.3",
|
"version": "2.2.4",
|
||||||
"resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.1.3.tgz",
|
"resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.2.4.tgz",
|
||||||
"integrity": "sha512-XNA/z/ye4P5rU1pieVmh0g/hSuDO98/a5UC8oSP0DNdvt6YtetJNHTrXwpwsQuflkGT34qKxAEcp7lSxXNjf/A==",
|
"integrity": "sha512-K7ZhpMY9iJ9ShTC0cR2+PnxdQRuwVIsXDO/WIEV/RnMC/vmSoKDTKW/exNQYPI+4ij10UjXqdNiEHwn47McANQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@vue/devtools-api": "^6.5.0",
|
"@vue/devtools-api": "^6.6.3",
|
||||||
"vue-demi": ">=0.14.5"
|
"vue-demi": "^0.14.10"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"vue-demi": {
|
"vue-demi": {
|
||||||
"version": "0.14.5",
|
"version": "0.14.10",
|
||||||
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.5.tgz",
|
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz",
|
||||||
"integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==",
|
"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
|
||||||
"requires": {}
|
"requires": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
"lodash-es": "^4.17.21",
|
"lodash-es": "^4.17.21",
|
||||||
"mitt": "^3.0.0",
|
"mitt": "^3.0.0",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"pinia": "^2.1.3",
|
"pinia": "^2.2.4",
|
||||||
"pinia-plugin-persistedstate": "^3.1.0",
|
"pinia-plugin-persistedstate": "^3.1.0",
|
||||||
"print-js": "^1.6.0",
|
"print-js": "^1.6.0",
|
||||||
"qs": "^6.11.2",
|
"qs": "^6.11.2",
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ export const getDetailsApi = (id: any) => {
|
|||||||
export const getTaskDetailsApi = (params: any) => {
|
export const getTaskDetailsApi = (params: any) => {
|
||||||
return http.post<any>(`OutStockTask/GetInfoByNo`, params);
|
return http.post<any>(`OutStockTask/GetInfoByNo`, params);
|
||||||
};
|
};
|
||||||
|
|
||||||
//修改出库箱信息
|
//修改出库箱信息
|
||||||
export const getEditBoxInfoApi = (params: Record<string, any>) => {
|
export const getEditBoxInfoApi = (params: Record<string, any>) => {
|
||||||
return http.post<any>(`OutStock/EditBoxInfo`, params);
|
return http.post<any>(`OutStock/EditBoxInfo`, params);
|
||||||
|
|||||||
@@ -18,3 +18,7 @@ export const getDetailsApi = (id: any) => {
|
|||||||
export const getTaskDetailsApi = (id: any) => {
|
export const getTaskDetailsApi = (id: any) => {
|
||||||
return http.get<any>(`InStockTask/GetInfo/${id}`);
|
return http.get<any>(`InStockTask/GetInfo/${id}`);
|
||||||
};
|
};
|
||||||
|
//同步成功
|
||||||
|
export const getInStockSyncSuccessApi = (params: Record<string, any>) => {
|
||||||
|
return http.post<ResPage<any>>(`InStock/SyncSuccess`, params);
|
||||||
|
};
|
||||||
|
|||||||
18
src/api/modules/warehouseSaleNotice.ts
Normal file
18
src/api/modules/warehouseSaleNotice.ts
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import http from "@/api";
|
||||||
|
//发货通知单详情 SalOutStockOrder/GetInfo
|
||||||
|
export const getNoticerDetailsApi = (id: any) => {
|
||||||
|
return http.get<any>(`DeliveryNoticeOrder/GetInfo/${id}`);
|
||||||
|
};
|
||||||
|
//发货通知单列表
|
||||||
|
export const getNoticeListApi = (params: Record<string, any>) => {
|
||||||
|
return http.post<any>(`DeliveryNoticeOrder/GetList`, params);
|
||||||
|
};
|
||||||
|
//发货通知单自定义条件
|
||||||
|
export const getNoticeDictionaryApi = () => {
|
||||||
|
return http.get<any>(`Dictionary/deliverynotice`);
|
||||||
|
};
|
||||||
|
//getNoticeStatusApi
|
||||||
|
//发货通知单据类型
|
||||||
|
export const getNoticeStatusApi = () => {
|
||||||
|
return http.get<any>(`DeliveryNoticeOrder/GetStatus`);
|
||||||
|
};
|
||||||
29
src/components.d.ts
vendored
29
src/components.d.ts
vendored
@@ -7,6 +7,14 @@ export {}
|
|||||||
|
|
||||||
declare module 'vue' {
|
declare module 'vue' {
|
||||||
export interface GlobalComponents {
|
export interface GlobalComponents {
|
||||||
|
403: typeof import('./components/ErrorMessage/403.vue')['default']
|
||||||
|
404: typeof import('./components/ErrorMessage/404.vue')['default']
|
||||||
|
500: typeof import('./components/ErrorMessage/500.vue')['default']
|
||||||
|
Add: typeof import('./components/DetailsBtns/components/Add.vue')['default']
|
||||||
|
ColSetting: typeof import('./components/ProTable/components/ColSetting.vue')['default']
|
||||||
|
Del: typeof import('./components/ListBtns/components/Del.vue')['default']
|
||||||
|
DetailsBtns: typeof import('./components/DetailsBtns/index.vue')['default']
|
||||||
|
DetailsSearch: typeof import('./components/DetailsSearch/index.vue')['default']
|
||||||
ElAside: typeof import('element-plus/es')['ElAside']
|
ElAside: typeof import('element-plus/es')['ElAside']
|
||||||
ElAutocomplete: typeof import('element-plus/es')['ElAutocomplete']
|
ElAutocomplete: typeof import('element-plus/es')['ElAutocomplete']
|
||||||
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
|
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
|
||||||
@@ -39,6 +47,11 @@ declare module 'vue' {
|
|||||||
ElTabs: typeof import('element-plus/es')['ElTabs']
|
ElTabs: typeof import('element-plus/es')['ElTabs']
|
||||||
ElTag: typeof import('element-plus/es')['ElTag']
|
ElTag: typeof import('element-plus/es')['ElTag']
|
||||||
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
||||||
|
Export: typeof import('./components/ListBtns/components/Export.vue')['default']
|
||||||
|
ExprotSelect: typeof import('./components/ListBtns/components/ExprotSelect.vue')['default']
|
||||||
|
Generate: typeof import('./components/DetailsBtns/components/Generate.vue')['default']
|
||||||
|
Grid: typeof import('./components/Grid/index.vue')['default']
|
||||||
|
GridItem: typeof import('./components/Grid/components/GridItem.vue')['default']
|
||||||
IEpArrowDown: typeof import('~icons/ep/arrow-down')['default']
|
IEpArrowDown: typeof import('~icons/ep/arrow-down')['default']
|
||||||
IEpCircleClose: typeof import('~icons/ep/circle-close')['default']
|
IEpCircleClose: typeof import('~icons/ep/circle-close')['default']
|
||||||
IEpFolderDelete: typeof import('~icons/ep/folder-delete')['default']
|
IEpFolderDelete: typeof import('~icons/ep/folder-delete')['default']
|
||||||
@@ -47,8 +60,24 @@ declare module 'vue' {
|
|||||||
IEpRemove: typeof import('~icons/ep/remove')['default']
|
IEpRemove: typeof import('~icons/ep/remove')['default']
|
||||||
IEpSearch: typeof import('~icons/ep/search')['default']
|
IEpSearch: typeof import('~icons/ep/search')['default']
|
||||||
IEpSwitchButton: typeof import('~icons/ep/switch-button')['default']
|
IEpSwitchButton: typeof import('~icons/ep/switch-button')['default']
|
||||||
|
ImportExcel: typeof import('./components/ImportExcel/index.vue')['default']
|
||||||
|
ListBtns: typeof import('./components/ListBtns/index.vue')['default']
|
||||||
|
ListResultDig: typeof import('./components/ListResultDig/index.vue')['default']
|
||||||
|
Loading: typeof import('./components/Loading/index.vue')['default']
|
||||||
|
Merge: typeof import('./components/ListBtns/components/Merge.vue')['default']
|
||||||
|
NoToVoid: typeof import('./components/ListBtns/components/noToVoid.vue')['default']
|
||||||
|
Pagination: typeof import('./components/ProTable/components/Pagination.vue')['default']
|
||||||
|
Print: typeof import('./components/DetailsBtns/components/Print.vue')['default']
|
||||||
|
ProTable: typeof import('./components/ProTable/index.vue')['default']
|
||||||
|
Refresh: typeof import('./components/ListBtns/components/Refresh.vue')['default']
|
||||||
|
Retransmission: typeof import('./components/ListBtns/components/Retransmission.vue')['default']
|
||||||
RouterLink: typeof import('vue-router')['RouterLink']
|
RouterLink: typeof import('vue-router')['RouterLink']
|
||||||
RouterView: typeof import('vue-router')['RouterView']
|
RouterView: typeof import('vue-router')['RouterView']
|
||||||
|
Search: typeof import('./components/Search/index.vue')['default']
|
||||||
|
Submit: typeof import('./components/DetailsBtns/components/Submit.vue')['default']
|
||||||
|
Switch: typeof import('./components/DetailsBtns/components/Switch.vue')['default']
|
||||||
Synchronous: typeof import('./components/ListBtns/components/Synchronous.vue')['default']
|
Synchronous: typeof import('./components/ListBtns/components/Synchronous.vue')['default']
|
||||||
|
TableColumn: typeof import('./components/ProTable/components/TableColumn.vue')['default']
|
||||||
|
ToVoid: typeof import('./components/ListBtns/components/ToVoid.vue')['default']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,6 +90,7 @@
|
|||||||
flex: 1;
|
flex: 1;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
min-width: 1280px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
// table-search 表格搜索样式
|
// table-search 表格搜索样式
|
||||||
|
|||||||
@@ -40,10 +40,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="outboundOrderList">
|
<script setup lang="ts" name="outboundOrderList">
|
||||||
import ListBtns from "@/components/ListBtns/index.vue";
|
|
||||||
import Search from "@/components/Search/index.vue";
|
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
|
||||||
|
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
||||||
import { getOutStockListApi } from "@/api/modules/deliveryAndOutbound";
|
import { getOutStockListApi } from "@/api/modules/deliveryAndOutbound";
|
||||||
|
|||||||
@@ -68,6 +68,13 @@ export const FORMDATA: any[] = [
|
|||||||
type: "input",
|
type: "input",
|
||||||
disabled: false,
|
disabled: false,
|
||||||
label: "序列号:"
|
label: "序列号:"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: "inStock",
|
||||||
|
placeholder: "请输入调用仓库",
|
||||||
|
type: "input",
|
||||||
|
disabled: false,
|
||||||
|
label: "调入仓库:"
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -87,5 +94,6 @@ export const RULEFORM: any = {
|
|||||||
ids: [],
|
ids: [],
|
||||||
serialNumbers: "",
|
serialNumbers: "",
|
||||||
boxBillNos: "",
|
boxBillNos: "",
|
||||||
orgId: null // 组织ID
|
orgId: null, // 组织ID
|
||||||
|
inStock: "" //调入仓库
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// import { STATUS } from "@/constant";
|
// import { STATUS } from "@/constant";
|
||||||
// import { RenderScope } from "@/components/ProTable/interface";
|
import { RenderScope } from "@/components/ProTable/interface";
|
||||||
|
|
||||||
// 销售订单 表格配置项
|
// 销售订单 表格配置项
|
||||||
export const COLUMNS = [
|
export const COLUMNS = [
|
||||||
@@ -89,6 +89,12 @@ export const COLUMNS = [
|
|||||||
prop: "realityQty",
|
prop: "realityQty",
|
||||||
width: "120"
|
width: "120"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
align: "left",
|
||||||
|
label: "调入仓库",
|
||||||
|
prop: "inStock",
|
||||||
|
width: "120"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
align: "left",
|
align: "left",
|
||||||
label: "出库开始时间",
|
label: "出库开始时间",
|
||||||
@@ -123,10 +129,10 @@ export const COLUMNS = [
|
|||||||
align: "left",
|
align: "left",
|
||||||
label: "是否作废",
|
label: "是否作废",
|
||||||
prop: "isRepeal",
|
prop: "isRepeal",
|
||||||
width: "120"
|
width: "120",
|
||||||
// render: (scope: RenderScope<any>): VNode | string | any => {
|
render: (scope: RenderScope<any>): VNode | string | any => {
|
||||||
// return scope.row.isRepeal ? "是" : "否";
|
return scope.row.isRepeal ? "是" : "否";
|
||||||
// }
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
align: "left",
|
align: "left",
|
||||||
|
|||||||
@@ -100,7 +100,6 @@ import { useMsg } from "@/hooks/useMsg";
|
|||||||
import { numberDecimalSeparatorRexg5 } from "@/utils/rexg/index";
|
import { numberDecimalSeparatorRexg5 } from "@/utils/rexg/index";
|
||||||
import { useAuthStore } from "@/stores/modules/auth";
|
import { useAuthStore } from "@/stores/modules/auth";
|
||||||
const authStore = useAuthStore();
|
const authStore = useAuthStore();
|
||||||
console.log(authStore, "============authStore=============");
|
|
||||||
let labelWidth = "107px";
|
let labelWidth = "107px";
|
||||||
|
|
||||||
const tableRef = ref<any>(null);
|
const tableRef = ref<any>(null);
|
||||||
@@ -125,7 +124,6 @@ const getDetails = async (billNo: any) => {
|
|||||||
if (!billNo) {
|
if (!billNo) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
console.log("12323");
|
|
||||||
const result = await getTaskDetailsApi({
|
const result = await getTaskDetailsApi({
|
||||||
billNo,
|
billNo,
|
||||||
pageSize: datas.pageSize,
|
pageSize: datas.pageSize,
|
||||||
|
|||||||
@@ -30,10 +30,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="outboundTaskList">
|
<script setup lang="ts" name="outboundTaskList">
|
||||||
import ListBtns from "@/components/ListBtns/index.vue";
|
|
||||||
import Search from "@/components/Search/index.vue";
|
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
|
||||||
|
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
||||||
import { getOutStockTaskListApi } from "@/api/modules/deliveryAndOutbound";
|
import { getOutStockTaskListApi } from "@/api/modules/deliveryAndOutbound";
|
||||||
@@ -59,7 +55,7 @@ initSearch(datas);
|
|||||||
* @param type {string} 按钮类型
|
* @param type {string} 按钮类型
|
||||||
* @param result {Object} 操作结果
|
* @param result {Object} 操作结果
|
||||||
*/
|
*/
|
||||||
//result?: Record<string, any>
|
|
||||||
const handleParentCallback = () => {
|
const handleParentCallback = () => {
|
||||||
datas.ruleForm = cloneDeep(RULEFORM);
|
datas.ruleForm = cloneDeep(RULEFORM);
|
||||||
proTable!.value.getTableList(datas.initParam);
|
proTable!.value.getTableList(datas.initParam);
|
||||||
|
|||||||
@@ -42,9 +42,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import Search from "@/components/Search/index.vue";
|
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
|
||||||
|
|
||||||
import { ref, reactive } from "vue";
|
import { ref, reactive } from "vue";
|
||||||
|
|
||||||
import { getListApi, getStatusApi } from "@/api/modules/exportList";
|
import { getListApi, getStatusApi } from "@/api/modules/exportList";
|
||||||
|
|||||||
@@ -23,10 +23,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="boxModificationsList">
|
<script setup lang="ts" name="boxModificationsList">
|
||||||
import ListBtns from "@/components/ListBtns/index.vue";
|
|
||||||
import Search from "@/components/Search/index.vue";
|
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
|
||||||
|
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
||||||
import { getChangeBoxRecordListApi } from "@/api/modules/inOtherLibraries";
|
import { getChangeBoxRecordListApi } from "@/api/modules/inOtherLibraries";
|
||||||
|
|||||||
@@ -33,12 +33,6 @@ export const FORMDATA: any[] = [
|
|||||||
placeholder: "请选择操作人",
|
placeholder: "请选择操作人",
|
||||||
type: "input",
|
type: "input",
|
||||||
label: "操作人:"
|
label: "操作人:"
|
||||||
},
|
|
||||||
{
|
|
||||||
prop: "materialNumber",
|
|
||||||
placeholder: "请输入物料名称/规格型号/编码",
|
|
||||||
type: "input",
|
|
||||||
label: "物料:"
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -24,10 +24,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="inboundOutboundRollbackList">
|
<script setup lang="ts" name="inboundOutboundRollbackList">
|
||||||
import ListBtns from "@/components/ListBtns/index.vue";
|
|
||||||
import Search from "@/components/Search/index.vue";
|
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
|
||||||
|
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
import { useSetSearchData, useSearchStockCodeInfoArray } from "@/hooks/useSearch";
|
import { useSetSearchData, useSearchStockCodeInfoArray } from "@/hooks/useSearch";
|
||||||
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
||||||
|
|||||||
@@ -18,10 +18,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="movingBoxesList">
|
<script setup lang="ts" name="movingBoxesList">
|
||||||
import ListBtns from "@/components/ListBtns/index.vue";
|
|
||||||
import Search from "@/components/Search/index.vue";
|
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
|
||||||
|
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
||||||
import { getmovingBoxesListApi } from "@/api/modules/inOtherLibraries";
|
import { getmovingBoxesListApi } from "@/api/modules/inOtherLibraries";
|
||||||
|
|||||||
@@ -23,10 +23,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="inventoryList">
|
<script setup lang="ts" name="inventoryList">
|
||||||
import ListBtns from "@/components/ListBtns/index.vue";
|
|
||||||
import Search from "@/components/Search/index.vue";
|
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
|
||||||
|
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
||||||
import { getTakeStockListApi } from "@/api/modules/inventory";
|
import { getTakeStockListApi } from "@/api/modules/inventory";
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// import { STATUS } from "@/constant";
|
// import { STATUS } from "@/constant";
|
||||||
// import { RenderScope } from "@/components/ProTable/interface";
|
import { RenderScope } from "@/components/ProTable/interface";
|
||||||
|
|
||||||
// 销售订单 表格配置项
|
// 销售订单 表格配置项
|
||||||
export const COLUMNS = [
|
export const COLUMNS = [
|
||||||
@@ -129,10 +129,10 @@ export const COLUMNS = [
|
|||||||
align: "left",
|
align: "left",
|
||||||
label: "是否作废",
|
label: "是否作废",
|
||||||
prop: "isRepeal",
|
prop: "isRepeal",
|
||||||
width: "120"
|
width: "120",
|
||||||
// render: (scope: RenderScope<any>): VNode | string | any => {
|
render: (scope: RenderScope<any>): VNode | string | any => {
|
||||||
// return scope.row.isRepeal ? "是" : "否";
|
return scope.row.isRepeal ? "是" : "否";
|
||||||
// }
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
align: "left",
|
align: "left",
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ const getDetails = async (id: any) => {
|
|||||||
datas.ruleForm = data;
|
datas.ruleForm = data;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
getDetails($route.query.id);
|
|
||||||
|
|
||||||
//动态计算表格高度
|
//动态计算表格高度
|
||||||
const handleResize = () => {
|
const handleResize = () => {
|
||||||
|
|||||||
@@ -29,9 +29,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts" name="ofInboundInstructionsList">
|
<script setup lang="ts" name="ofInboundInstructionsList">
|
||||||
import ListBtns from "@/components/ListBtns/index.vue";
|
|
||||||
import Search from "@/components/Search/index.vue";
|
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
||||||
import { initSearch } from "./init/index";
|
import { initSearch } from "./init/index";
|
||||||
|
|||||||
@@ -25,36 +25,65 @@
|
|||||||
{{ scope.row.billNo }}
|
{{ scope.row.billNo }}
|
||||||
</a>
|
</a>
|
||||||
</template>
|
</template>
|
||||||
<!-- successSync -->
|
<!-- 只有采购入库单才显示同步状态 -->
|
||||||
<template #successSync="scope">
|
<template #successSync="scope">
|
||||||
<a @click="handleSuccessSync(scope.row)" :class="scope.row.successSync == '失败' ? 'break-word to-detail1' : ''">
|
<a
|
||||||
{{ scope.row.successSync }}
|
@click="handleSuccessSync(scope.row)"
|
||||||
|
:class="scope.row.successSync == '失败' && scope.row.type == '采购入库' ? 'break-word to-detail1' : ''"
|
||||||
|
>
|
||||||
|
{{ scope.row.type == "采购入库" ? scope.row.successSync : "--" }}
|
||||||
</a>
|
</a>
|
||||||
</template>
|
</template>
|
||||||
</ProTable>
|
</ProTable>
|
||||||
|
<!-- 同步成功操作弹窗 -->
|
||||||
|
<el-dialog v-model="datas.isSynchronous" title="修改同步状态" width="500" align-center @close="handleDiaLog">
|
||||||
|
<span style="font-size: 16px; color: red">确定入库数据已同步金蝶系统, 请输入金蝶入库单号</span>
|
||||||
|
<div>
|
||||||
|
<div style="display: flex; padding: 10px">
|
||||||
|
<div style="flex: 1; text-align: left">入库单号</div>
|
||||||
|
<div style="flex: 1; padding-left: 20px">来源单号</div>
|
||||||
|
<div style="flex: 1; padding-left: 20px; text-align: left">
|
||||||
|
<span style="padding-right: 3px; color: red">*</span>金蝶入库单号
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="max-height: 200px; overflow: auto">
|
||||||
|
<div v-for="item in datas.successSyncList" :key="item.id" style="display: flex; padding: 0 10px 10px">
|
||||||
|
<el-input v-model="item.billNo" disabled style="flex: 1; padding-right: 20px" />
|
||||||
|
<el-input v-model="item.sourceBillNo" disabled style="flex: 1; padding-right: 20px" />
|
||||||
|
<el-input v-model="item.erpBillNo" style="flex: 1" :maxlength="20" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button @click="datas.isSynchronous = false">取消</el-button>
|
||||||
|
<el-button type="primary" @click="handleSynchronousCommit"> 确认 </el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="warehouseReceiptList">
|
<script setup lang="ts" name="warehouseReceiptList">
|
||||||
import ListBtns from "@/components/ListBtns/index.vue";
|
|
||||||
import Search from "@/components/Search/index.vue";
|
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
|
||||||
|
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
||||||
import { getInStockListApi } from "@/api/modules/receiptAndWarehousing";
|
import { getInStockListApi, getInStockSyncSuccessApi } from "@/api/modules/receiptAndWarehousing";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
import { initSearch } from "./init/index";
|
import { initSearch } from "./init/index";
|
||||||
import { useSearchInfoArray, useSetSearchData } from "@/hooks/useSearch";
|
import { useSearchInfoArray, useSetSearchData } from "@/hooks/useSearch";
|
||||||
import { ElMessageBox } from "element-plus";
|
import { ElMessageBox } from "element-plus";
|
||||||
|
import { useMsg } from "@/hooks/useMsg";
|
||||||
const proTable = ref<any>(null);
|
const proTable = ref<any>(null);
|
||||||
// 数据源
|
// 数据源
|
||||||
const datas = reactive({
|
const datas: any = reactive<any>({
|
||||||
exportList: cloneDeep(RULEFORM),
|
exportList: cloneDeep(RULEFORM),
|
||||||
columns: COLUMNS, //列表配置项
|
columns: COLUMNS, //列表配置项
|
||||||
initParam: cloneDeep(RULEFORM), // 初始化搜索条件|重置搜索条件
|
initParam: cloneDeep(RULEFORM), // 初始化搜索条件|重置搜索条件
|
||||||
ruleForm: cloneDeep(RULEFORM), // 搜索条件
|
ruleForm: cloneDeep(RULEFORM), // 搜索条件
|
||||||
formData: FORMDATA //搜索配置项
|
formData: FORMDATA, //搜索配置项
|
||||||
|
isSynchronous: false, //用于控制同步成功弹窗
|
||||||
|
successSyncList: [] //同步成功弹窗表格数据
|
||||||
});
|
});
|
||||||
//选中表格的行
|
//选中表格的行
|
||||||
let selectionList = ref([]);
|
let selectionList = ref([]);
|
||||||
@@ -67,11 +96,24 @@ const $router = useRouter();
|
|||||||
* @param type {string} 按钮类型
|
* @param type {string} 按钮类型
|
||||||
* @param result {Object} 操作结果
|
* @param result {Object} 操作结果
|
||||||
*/
|
*/
|
||||||
//result?: Record<string, any>
|
|
||||||
//按钮回调
|
//按钮回调
|
||||||
const handleParentCallback = () => {
|
const handleParentCallback = (params: Record<string, any>) => {
|
||||||
datas.ruleForm = cloneDeep(RULEFORM);
|
const { type } = params;
|
||||||
proTable!.value.getTableList(datas.initParam);
|
if (type === "Synchronous") {
|
||||||
|
selectionList.value.forEach((item: any) => {
|
||||||
|
datas.successSyncList.push({
|
||||||
|
id: item.id,
|
||||||
|
billNo: item.billNo,
|
||||||
|
sourceBillNo: item.sourceBillNo,
|
||||||
|
materialNumber: item.materialNumber,
|
||||||
|
erpBillNo: ""
|
||||||
|
});
|
||||||
|
});
|
||||||
|
datas.isSynchronous = true;
|
||||||
|
} else {
|
||||||
|
datas.ruleForm = cloneDeep(RULEFORM);
|
||||||
|
proTable!.value.getTableList(datas.initParam);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
//搜索
|
//搜索
|
||||||
const handleSearch = () => {
|
const handleSearch = () => {
|
||||||
@@ -100,7 +142,44 @@ const handleSuccessSync = (row: any) => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
//同步成功按钮弹窗确认事件
|
||||||
|
const handleSynchronousCommit = async () => {
|
||||||
|
let isErpBillNo = datas.successSyncList.some((item: any) => {
|
||||||
|
return !item.erpBillNo;
|
||||||
|
});
|
||||||
|
if (isErpBillNo) {
|
||||||
|
useMsg("warning", "金蝶入库单号不能为空 ! ");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let params: any = [];
|
||||||
|
datas.successSyncList.forEach((item: any) => {
|
||||||
|
params.push({
|
||||||
|
id: item.id,
|
||||||
|
sourceBillNo: item.sourceBillNo,
|
||||||
|
materialNumber: item.materialNumber,
|
||||||
|
erpBillNo: item.erpBillNo
|
||||||
|
});
|
||||||
|
});
|
||||||
|
const result = await getInStockSyncSuccessApi(params);
|
||||||
|
const { isSuccess, message } = result;
|
||||||
|
if (result.status === 200) {
|
||||||
|
// const { isSuccess, message } = result;
|
||||||
|
if (isSuccess) {
|
||||||
|
useMsg("success", "数据同步成功 !");
|
||||||
|
datas.isSynchronous = false;
|
||||||
|
datas.successSyncList = [];
|
||||||
|
proTable!.value.getTableList(datas.initParam);
|
||||||
|
} else {
|
||||||
|
useMsg("error", message);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
useMsg("error", message);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
//同步成功弹窗关闭(清空数据)
|
||||||
|
const handleDiaLog = () => {
|
||||||
|
datas.successSyncList = [];
|
||||||
|
};
|
||||||
//跳转到详情
|
//跳转到详情
|
||||||
const handleToDetail = (row: any) => {
|
const handleToDetail = (row: any) => {
|
||||||
$router.push({
|
$router.push({
|
||||||
@@ -134,4 +213,14 @@ const handleRemoteMehod = (params: any) => {
|
|||||||
color: red;
|
color: red;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
:deep(.el-dialog__body) {
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 14px;
|
||||||
|
|
||||||
|
/* color: red; */
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
:deep(.el-dialog__title) {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -30,10 +30,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="boxStorage">
|
<script setup lang="ts" name="boxStorage">
|
||||||
import ListBtns from "@/components/ListBtns/index.vue";
|
|
||||||
import Search from "@/components/Search/index.vue";
|
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
|
||||||
|
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
||||||
import { getBoxListApi } from "@/api/modules/reportForm";
|
import { getBoxListApi } from "@/api/modules/reportForm";
|
||||||
|
|||||||
@@ -57,31 +57,34 @@ export const COLUMNS = [
|
|||||||
{
|
{
|
||||||
align: "left",
|
align: "left",
|
||||||
label: "库存量",
|
label: "库存量",
|
||||||
prop: "beforeQty",
|
prop: "beforeQty"
|
||||||
width: "240"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
align: "left",
|
align: "left",
|
||||||
label: "1级分类",
|
label: "1级分类",
|
||||||
prop: "fProductLines1FName",
|
prop: "beforeQty",
|
||||||
width: "180"
|
width: "120"
|
||||||
|
// fixed: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
align: "left",
|
align: "left",
|
||||||
label: "2级分类",
|
label: "2级分类",
|
||||||
prop: "fProductCATs1FName",
|
prop: "beforeQty",
|
||||||
width: "180"
|
width: "120"
|
||||||
|
// fixed: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
align: "left",
|
align: "left",
|
||||||
label: "3级分类",
|
label: "3级分类",
|
||||||
prop: "fMaterialGroupFName",
|
prop: "beforeQty",
|
||||||
width: "180"
|
width: "120"
|
||||||
|
// fixed: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
align: "left",
|
align: "left",
|
||||||
label: "SPU",
|
label: "SPU",
|
||||||
prop: "f_Product",
|
prop: "beforeQty",
|
||||||
width: "240"
|
width: "160"
|
||||||
|
// fixed: true
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -18,10 +18,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="finishedProductIndex">
|
<script setup lang="ts" name="finishedProductIndex">
|
||||||
import ListBtns from "@/components/ListBtns/index.vue";
|
|
||||||
import Search from "@/components/Search/index.vue";
|
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
|
||||||
|
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
||||||
import { getProductInventoryListApi } from "@/api/modules/finishedProduct";
|
import { getProductInventoryListApi } from "@/api/modules/finishedProduct";
|
||||||
|
|||||||
@@ -25,9 +25,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="immediately">
|
<script setup lang="ts" name="immediately">
|
||||||
import ListBtns from "@/components/ListBtns/index.vue";
|
|
||||||
import Search from "@/components/Search/index.vue";
|
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
|
||||||
import { useValidateInput } from "@/hooks/useValidateInput";
|
import { useValidateInput } from "@/hooks/useValidateInput";
|
||||||
import { useSetSearchData, useSearchStockCodeInfoArray } from "@/hooks/useSearch";
|
import { useSetSearchData, useSearchStockCodeInfoArray } from "@/hooks/useSearch";
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
|
|||||||
@@ -18,10 +18,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="material">
|
<script setup lang="ts" name="material">
|
||||||
import ListBtns from "@/components/ListBtns/index.vue";
|
|
||||||
import Search from "@/components/Search/index.vue";
|
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
|
||||||
|
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
||||||
import { getInOutistApi } from "@/api/modules/reportForm";
|
import { getInOutistApi } from "@/api/modules/reportForm";
|
||||||
|
|||||||
@@ -30,10 +30,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="boxMark">
|
<script setup lang="ts" name="boxMark">
|
||||||
import ListBtns from "@/components/ListBtns/index.vue";
|
|
||||||
import Search from "@/components/Search/index.vue";
|
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
|
||||||
|
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
||||||
import { getBoxMarkListApi } from "@/api/modules/boxMark";
|
import { getBoxMarkListApi } from "@/api/modules/boxMark";
|
||||||
|
|||||||
@@ -24,10 +24,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="subscriptionIndex">
|
<script setup lang="ts" name="subscriptionIndex">
|
||||||
import ListBtns from "@/components/ListBtns/index.vue";
|
|
||||||
import Search from "@/components/Search/index.vue";
|
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
|
||||||
|
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
import { RULEFORM, FORMDATA, COLUMNS } from "./constant/list/index";
|
||||||
import { getSubscriptionListApi } from "@/api/modules/subscription";
|
import { getSubscriptionListApi } from "@/api/modules/subscription";
|
||||||
|
|||||||
Reference in New Issue
Block a user