snow 4 kuukautta sitten
vanhempi
commit
7ebcc1c380
95 muutettua tiedostoa jossa 511 lisäystä ja 92 poistoa
  1. 0 0
      dist/assets/BaseForm.7c4831.js
  2. 0 0
      dist/assets/BaseForm.c2f142.js
  3. 0 0
      dist/assets/ChildGoodEditModal.396f34.js
  4. 1 1
      dist/assets/ChildGoodEditModal.7967d3.js
  5. 0 0
      dist/assets/ChildGoodEditModal.8fb53d.js
  6. 0 0
      dist/assets/ChildGoodEditModal.b0de1a.js
  7. 0 0
      dist/assets/ChildGoodEditModal.d489ee.js
  8. 1 1
      dist/assets/InvoiceTitle.77bebe.js
  9. 1 1
      dist/assets/InvoiceTitle.7eecae.js
  10. 0 0
      dist/assets/basic-descriptions.17783a41.js
  11. 0 0
      dist/assets/columnRenderHelper.4d01a9b2.js
  12. 0 0
      dist/assets/columns.eaa2d03d.js
  13. 0 0
      dist/assets/detail.018fde.js
  14. 0 0
      dist/assets/detail.385174.js
  15. 0 0
      dist/assets/detail.40f304.js
  16. 1 1
      dist/assets/detail.48dab8.js
  17. 0 0
      dist/assets/detail.711141.js
  18. 0 0
      dist/assets/detail.86fc1b.js
  19. 0 0
      dist/assets/detail.9a7ce5.js
  20. 0 0
      dist/assets/detail.a80eff.js
  21. 0 0
      dist/assets/detail.bdf838.js
  22. 0 0
      dist/assets/execl-upload.615bf98a.js
  23. 0 0
      dist/assets/index.08977e.js
  24. 0 0
      dist/assets/index.0dbb49.js
  25. 0 0
      dist/assets/index.145851.js
  26. 0 0
      dist/assets/index.183c593f.js
  27. 0 0
      dist/assets/index.1ddafc.js
  28. 0 0
      dist/assets/index.1fba3b.js
  29. 0 0
      dist/assets/index.254437.js
  30. 0 0
      dist/assets/index.255f07.js
  31. 0 0
      dist/assets/index.2589dd.js
  32. 0 0
      dist/assets/index.2d5352.js
  33. 0 0
      dist/assets/index.303734.js
  34. 0 0
      dist/assets/index.31ae1f78.js
  35. 0 0
      dist/assets/index.351de9.js
  36. 0 0
      dist/assets/index.3d5a635c.js
  37. 0 0
      dist/assets/index.3e4a56da.js
  38. 0 0
      dist/assets/index.4186705a.js
  39. 0 0
      dist/assets/index.44ffc8.js
  40. 0 0
      dist/assets/index.4cf9ee.js
  41. 0 0
      dist/assets/index.518df3.js
  42. 0 0
      dist/assets/index.52bb3f.js
  43. 0 0
      dist/assets/index.5346ab.js
  44. 0 0
      dist/assets/index.563420.js
  45. 0 0
      dist/assets/index.5a0076.js
  46. 0 0
      dist/assets/index.603aa9.js
  47. 0 0
      dist/assets/index.610b06.js
  48. 0 0
      dist/assets/index.619c55.js
  49. 0 0
      dist/assets/index.656b8f.js
  50. 0 0
      dist/assets/index.674a5d.js
  51. 0 0
      dist/assets/index.865268.js
  52. 0 0
      dist/assets/index.86f219.js
  53. 0 0
      dist/assets/index.8d661c.js
  54. 0 0
      dist/assets/index.978f4874.js
  55. 0 0
      dist/assets/index.9fb413.js
  56. 0 0
      dist/assets/index.ac9c33da.js
  57. 0 0
      dist/assets/index.b42d64.js
  58. 0 0
      dist/assets/index.bb93f8.js
  59. 0 0
      dist/assets/index.bdcf42.js
  60. 0 0
      dist/assets/index.c2487c.js
  61. 0 0
      dist/assets/index.cf91ee.js
  62. 0 0
      dist/assets/index.d669c26b.js
  63. 0 0
      dist/assets/index.da643a.js
  64. 0 0
      dist/assets/index.e00d25a5.js
  65. 0 0
      dist/assets/index.e8e9a3.js
  66. 0 0
      dist/assets/index.eb39c2.js
  67. 0 0
      dist/assets/index.edef3d.js
  68. 0 0
      dist/assets/index.f99bfa0b.js
  69. 0 0
      dist/assets/index.js
  70. 0 0
      dist/assets/motion.ab3cca28.js
  71. 0 0
      dist/assets/phone.9e1123.js
  72. 1 1
      dist/assets/qrCode.be32d8.js
  73. 0 0
      dist/assets/query-category.fa03a8.js
  74. 0 0
      dist/assets/regist.bfca82.js
  75. 0 0
      dist/assets/rule.92addeb0.js
  76. 0 0
      dist/assets/tootip.c29898b9.js
  77. 0 0
      dist/assets/update.2f876b.js
  78. 0 0
      dist/assets/use-page-search.496e3eda.js
  79. 0 0
      dist/assets/useDetail.2f487ca5.js
  80. 0 0
      dist/assets/verifyCode.4a957afe.js
  81. 1 8
      src/components/Input/src/number.vue
  82. 1 1
      src/views/invoiceInOut/clientC/components/BaseForm/index.vue
  83. 158 0
      src/views/invoiceInOut/clientC/components/NotOrderImportModal/columns-config.ts
  84. 173 0
      src/views/invoiceInOut/clientC/components/NotOrderImportModal/index.vue
  85. 76 0
      src/views/invoiceInOut/clientC/components/NotOrderImportModal/validator.ts
  86. 7 0
      src/views/invoiceInOut/clientC/components/OrderImportModal/columns-config.ts
  87. 4 4
      src/views/invoiceInOut/clientC/config/content.config.ts
  88. 37 37
      src/views/invoiceInOut/clientC/index.vue
  89. 1 1
      src/views/invoiceInOut/inManager/components/NotOrderImportModal/index.vue
  90. 1 1
      src/views/invoiceInOut/inManager/components/OrderImportModal/index.vue
  91. 1 1
      src/views/invoiceInOut/inManager/config/content.config.ts
  92. 6 6
      src/views/invoiceInOut/inManager/index.vue
  93. 6 4
      src/views/invoiceInOut/outManager/components/ChooseGoodModal/config/content.config.ts
  94. 31 21
      src/views/invoiceInOut/outManager/detail.vue
  95. 3 3
      src/views/invoiceInOut/outManager/index.vue

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/BaseForm.7c4831.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/BaseForm.c2f142.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/ChildGoodEditModal.396f34.js


+ 1 - 1
dist/assets/ChildGoodEditModal.7967d3.js

@@ -1 +1 @@
-import{_ as B,d as _,a_ as C,w as x,z as V,r as y,o as i,G as d,C as n,l as a,a as h,h as s,j as r,aO as b,M as w,ah as D,a$ as k}from"./index.js";import{g as E}from"./columns.d0b7f00e.js";import{B as M}from"./basic-descriptions.600049da.js";import"./status.0f771e9a.js";import"./tootip.50a62683.js";const F={class:"flex justify-between mt-[10px]"},N={class:"flex items-center"},g=_({__name:"ChildGoodEditModal",props:{visible:{type:Boolean,required:!0},index:{type:null,required:!0},data:{type:null,required:!0}},emits:["submit"],setup(m,{emit:p}){const t=m,c=p,o=C(t,"visible"),l=x(0);V(()=>o.value,()=>{!o.value||(l.value=t.data.child_num)});function f(){c("submit",t.index,{...t.data,child_num:l.value}),o.value=!1}return(G,e)=>{const v=y("ElButton");return i(),d(a(k),{modelValue:a(o),"onUpdate:modelValue":e[1]||(e[1]=u=>D(o)?o.value=u:null),title:"\u7F16\u8F91\u5B50\u5546\u54C1",center:""},{default:n(()=>[t.data?(i(),d(a(M),{key:0,style:{overflow:"hidden"},data:t.data,columns:a(E)},null,8,["data","columns"])):h("v-if",!0),s("div",F,[s("div",N,[e[2]||(e[2]=s("p",{style:{width:"110px"}},"\u5B50\u5546\u54C1\u6BD4\u4F8B:",-1)),r(a(b),{modelValue:l.value,"onUpdate:modelValue":e[0]||(e[0]=u=>l.value=u),placeholder:"\u5B50\u5546\u54C1\u6BD4\u4F8B"},null,8,["modelValue"])]),r(v,{type:"primary",onClick:f},{default:n(()=>e[3]||(e[3]=[w("\u4FDD\u5B58")])),_:1})])]),_:1},8,["modelValue"])}}});var z=B(g,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/views/invoiceInOut/productManager/components/ChildGoodEditModal.vue"]]);export{z as default};
+import{_ as B,d as _,a_ as C,w as x,z as V,r as y,o as i,G as d,C as n,l as a,a as h,h as s,j as r,aO as b,M as w,ah as D,a$ as k}from"./index.js";import{g as E}from"./columns.eaa2d03d.js";import{B as M}from"./basic-descriptions.17783a41.js";import"./status.0f771e9a.js";import"./tootip.c29898b9.js";const F={class:"flex justify-between mt-[10px]"},N={class:"flex items-center"},g=_({__name:"ChildGoodEditModal",props:{visible:{type:Boolean,required:!0},index:{type:null,required:!0},data:{type:null,required:!0}},emits:["submit"],setup(m,{emit:p}){const t=m,c=p,o=C(t,"visible"),l=x(0);V(()=>o.value,()=>{!o.value||(l.value=t.data.child_num)});function f(){c("submit",t.index,{...t.data,child_num:l.value}),o.value=!1}return(G,e)=>{const v=y("ElButton");return i(),d(a(k),{modelValue:a(o),"onUpdate:modelValue":e[1]||(e[1]=u=>D(o)?o.value=u:null),title:"\u7F16\u8F91\u5B50\u5546\u54C1",center:""},{default:n(()=>[t.data?(i(),d(a(M),{key:0,style:{overflow:"hidden"},data:t.data,columns:a(E)},null,8,["data","columns"])):h("v-if",!0),s("div",F,[s("div",N,[e[2]||(e[2]=s("p",{style:{width:"110px"}},"\u5B50\u5546\u54C1\u6BD4\u4F8B:",-1)),r(a(b),{modelValue:l.value,"onUpdate:modelValue":e[0]||(e[0]=u=>l.value=u),placeholder:"\u5B50\u5546\u54C1\u6BD4\u4F8B"},null,8,["modelValue"])]),r(v,{type:"primary",onClick:f},{default:n(()=>e[3]||(e[3]=[w("\u4FDD\u5B58")])),_:1})])]),_:1},8,["modelValue"])}}});var z=B(g,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/views/invoiceInOut/productManager/components/ChildGoodEditModal.vue"]]);export{z as default};

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/ChildGoodEditModal.8fb53d.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/ChildGoodEditModal.b0de1a.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/ChildGoodEditModal.d489ee.js


+ 1 - 1
dist/assets/InvoiceTitle.77bebe.js

@@ -1 +1 @@
-import{_ as s,d as _,o as l,G as d,l as r,a as u}from"./index.js";import{B as v}from"./basic-descriptions.600049da.js";const y=o=>{const{company_address:e,mobile:i,registercode:n,bank_name:c,bankNo:t,name:a}=o;return{invoice_addr:e,invoice_mobile:i,invoice_code:n,invoice_bank:c,invoice_bankNo:t,invoice_title:a}},g=o=>{const{invoice_addr:e,invoice_mobile:i,invoice_code:n,invoice_bank:c,invoice_bankNo:t,invoice_title:a}=o;return{invoice_code:n,invoice_title:a,addrAndmobile:e+" "+i,bankAndBankNo:c+" "+t}},B=o=>{const{invoice_addr:e,invoice_mobile:i,company_license:n,invoice_bank:c,invoice_bankNo:t,invoice_title:a}=o;return{invoice_code:n,invoice_title:a,addrAndmobile:e+" "+i,bankAndBankNo:c+" "+t}},b=[{label:"\u62AC\u5934",span:24,field:"invoice_title"},{label:"\u7EB3\u7A0E\u4EBA\u8BC6\u522B\u53F7",span:24,field:"invoice_code"}],I=()=>({buyer_code:"",buyer_name:"",seller_code:"",seller_name:"",good_source:"1",good_code:"",good_type:"",is_combind:"0",inv_good_name:"",subunit_price:"",basic_status:"",unit_price:"",goodName:"",skuCode:"",cat_code:"",inv_type:"",cat_tax:"",spec:"",unit:"",unit_weight:"",spectral:"",childArr:[]}),m=_({__name:"InvoiceTitle",props:{detail:{type:Object,required:!0}},setup(o){return(e,i)=>Object.keys(e.detail).length!==0?(l(),d(r(v),{key:0,"px-8":"","pb-5":"",data:e.detail,columns:r(b),"col-number":1,"label-width":"130"},null,8,["data","columns"])):u("v-if",!0)}});var p=s(m,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/views/invoiceInOut/productManager/components/InvoiceTitle.vue"]]),A=Object.freeze(Object.defineProperty({__proto__:null,default:p},Symbol.toStringTag,{value:"Module"}));export{p as I,g as a,B as b,I as c,y as d,A as e};
+import{_ as s,d as _,o as l,G as d,l as r,a as u}from"./index.js";import{B as v}from"./basic-descriptions.17783a41.js";const y=o=>{const{company_address:e,mobile:i,registercode:n,bank_name:c,bankNo:t,name:a}=o;return{invoice_addr:e,invoice_mobile:i,invoice_code:n,invoice_bank:c,invoice_bankNo:t,invoice_title:a}},g=o=>{const{invoice_addr:e,invoice_mobile:i,invoice_code:n,invoice_bank:c,invoice_bankNo:t,invoice_title:a}=o;return{invoice_code:n,invoice_title:a,addrAndmobile:e+" "+i,bankAndBankNo:c+" "+t}},B=o=>{const{invoice_addr:e,invoice_mobile:i,company_license:n,invoice_bank:c,invoice_bankNo:t,invoice_title:a}=o;return{invoice_code:n,invoice_title:a,addrAndmobile:e+" "+i,bankAndBankNo:c+" "+t}},b=[{label:"\u62AC\u5934",span:24,field:"invoice_title"},{label:"\u7EB3\u7A0E\u4EBA\u8BC6\u522B\u53F7",span:24,field:"invoice_code"}],I=()=>({buyer_code:"",buyer_name:"",seller_code:"",seller_name:"",good_source:"1",good_code:"",good_type:"",is_combind:"0",inv_good_name:"",subunit_price:"",basic_status:"",unit_price:"",goodName:"",skuCode:"",cat_code:"",inv_type:"",cat_tax:"",spec:"",unit:"",unit_weight:"",spectral:"",childArr:[]}),m=_({__name:"InvoiceTitle",props:{detail:{type:Object,required:!0}},setup(o){return(e,i)=>Object.keys(e.detail).length!==0?(l(),d(r(v),{key:0,"px-8":"","pb-5":"",data:e.detail,columns:r(b),"col-number":1,"label-width":"130"},null,8,["data","columns"])):u("v-if",!0)}});var p=s(m,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/views/invoiceInOut/productManager/components/InvoiceTitle.vue"]]),A=Object.freeze(Object.defineProperty({__proto__:null,default:p},Symbol.toStringTag,{value:"Module"}));export{p as I,g as a,B as b,I as c,y as d,A as e};

+ 1 - 1
dist/assets/InvoiceTitle.7eecae.js

@@ -1 +1 @@
-import{_ as o,d as s,o as i,G as n,l as t,a as r}from"./index.js";import{i as a}from"./shared.80186348.js";import{B as c}from"./basic-descriptions.600049da.js";const l=s({__name:"InvoiceTitle",props:{detail:{type:Object,required:!0}},setup(p){return(e,m)=>Object.keys(e.detail).length!==0?(i(),n(t(c),{key:0,"px-8":"","pb-5":"",data:e.detail,columns:t(a),"col-number":1,"label-width":"130"},null,8,["data","columns"])):r("v-if",!0)}});var f=o(l,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/views/invoiceInOut/inventoryCheck/components/InvoiceTitle.vue"]]);export{f as default};
+import{_ as o,d as s,o as i,G as n,l as t,a as r}from"./index.js";import{i as a}from"./shared.80186348.js";import{B as c}from"./basic-descriptions.17783a41.js";const l=s({__name:"InvoiceTitle",props:{detail:{type:Object,required:!0}},setup(p){return(e,m)=>Object.keys(e.detail).length!==0?(i(),n(t(c),{key:0,"px-8":"","pb-5":"",data:e.detail,columns:t(a),"col-number":1,"label-width":"130"},null,8,["data","columns"])):r("v-if",!0)}});var f=o(l,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/views/invoiceInOut/inventoryCheck/components/InvoiceTitle.vue"]]);export{f as default};

+ 0 - 0
dist/assets/basic-descriptions.600049da.js → dist/assets/basic-descriptions.17783a41.js


+ 0 - 0
dist/assets/columnRenderHelper.db3210f6.js → dist/assets/columnRenderHelper.4d01a9b2.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/columns.eaa2d03d.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/detail.018fde.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/detail.385174.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/detail.40f304.js


+ 1 - 1
dist/assets/detail.48dab8.js

@@ -1 +1 @@
-import{_ as p,d as n,aY as m,at as d,H as _,l as e,o as a,c as u,h as f,L as v,G as o,a as i}from"./index.js";import{u as k}from"./useDetail.b21d45df.js";import D from"./BaseForm.7c4831.js";import{P as g}from"./index.d8892d0a.js";import{a as h}from"./index.fcac3003.js";import"./status.0f771e9a.js";import"./InvoiceTitle.77bebe.js";import"./basic-descriptions.600049da.js";import"./index.08977e.js";import"./use-page-search.a9e96e45.js";import"./ChildGoodEditModal.7967d3.js";import"./columns.d0b7f00e.js";import"./tootip.50a62683.js";import"./query-category.fa03a8.js";const y={class:"padding__container"},x={class:"my-[5px]",style:{"font-size":"14px"}},B=n({__name:"detail",setup(C){const t=m(),{title:r,isDetail:c,collapses:N,id:s}=k({baseName:"\u5546\u54C1",collapseLen:2});return s.value&&t.run(h({id:s.value})),(w,L)=>{const l=d("loading");return _((a(),u("div",y,[f("p",x,v(e(r)),1),e(c)?i("v-if",!0):(a(),o(D,{key:0})),e(t).data?(a(),o(g,{key:1,data:e(t).data},null,8,["data"])):i("v-if",!0)])),[[l,e(t).loading]])}}});var U=p(B,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/views/invoiceInOut/productManager/detail.vue"]]);export{U as default};
+import{_ as p,d as n,aY as m,at as d,H as _,l as e,o as a,c as u,h as f,L as v,G as o,a as i}from"./index.js";import{u as k}from"./useDetail.2f487ca5.js";import D from"./BaseForm.7c4831.js";import{P as g}from"./index.183c593f.js";import{a as h}from"./index.3e4a56da.js";import"./status.0f771e9a.js";import"./InvoiceTitle.77bebe.js";import"./basic-descriptions.17783a41.js";import"./index.08977e.js";import"./use-page-search.496e3eda.js";import"./ChildGoodEditModal.7967d3.js";import"./columns.eaa2d03d.js";import"./tootip.c29898b9.js";import"./query-category.fa03a8.js";const y={class:"padding__container"},x={class:"my-[5px]",style:{"font-size":"14px"}},B=n({__name:"detail",setup(C){const t=m(),{title:r,isDetail:c,collapses:N,id:s}=k({baseName:"\u5546\u54C1",collapseLen:2});return s.value&&t.run(h({id:s.value})),(w,L)=>{const l=d("loading");return _((a(),u("div",y,[f("p",x,v(e(r)),1),e(c)?i("v-if",!0):(a(),o(D,{key:0})),e(t).data?(a(),o(g,{key:1,data:e(t).data},null,8,["data"])):i("v-if",!0)])),[[l,e(t).loading]])}}});var U=p(B,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/views/invoiceInOut/productManager/detail.vue"]]);export{U as default};

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/detail.711141.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/detail.86fc1b.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/detail.9a7ce5.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/detail.a80eff.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/detail.bdf838.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/execl-upload.615bf98a.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.08977e.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.0dbb49.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.145851.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.183c593f.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.1ddafc.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.1fba3b.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.254437.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.255f07.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.2589dd.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.2d5352.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.303734.js


+ 0 - 0
dist/assets/index.fb6ed384.js → dist/assets/index.31ae1f78.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.351de9.js


+ 0 - 0
dist/assets/index.c92fb28c.js → dist/assets/index.3d5a635c.js


+ 0 - 0
dist/assets/index.fcac3003.js → dist/assets/index.3e4a56da.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.4186705a.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.44ffc8.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.4cf9ee.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.518df3.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.52bb3f.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.5346ab.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.563420.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.5a0076.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.603aa9.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.610b06.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.619c55.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.656b8f.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.674a5d.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.865268.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.86f219.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.8d661c.js


+ 0 - 0
dist/assets/index.08715dd8.js → dist/assets/index.978f4874.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.9fb413.js


+ 0 - 0
dist/assets/index.21266eb6.js → dist/assets/index.ac9c33da.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.b42d64.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.bb93f8.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.bdcf42.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.c2487c.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.cf91ee.js


+ 0 - 0
dist/assets/index.94db72ac.js → dist/assets/index.d669c26b.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.da643a.js


+ 0 - 0
dist/assets/index.ba41433d.js → dist/assets/index.e00d25a5.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.e8e9a3.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.eb39c2.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.edef3d.js


+ 0 - 0
dist/assets/index.ee037de1.js → dist/assets/index.f99bfa0b.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.js


+ 0 - 0
dist/assets/motion.e37201e8.js → dist/assets/motion.ab3cca28.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/phone.9e1123.js


+ 1 - 1
dist/assets/qrCode.be32d8.js

@@ -1,4 +1,4 @@
-import{d as Ht,w as Ot,a7 as Lt,z as me,j as P,H as pe,at as we,l as R,aE as be,F as Jt,y as Ce,bu as ve,bv as Dt,aw as Ee,_ as Te,r as jt,o as Be,c as Ae,C as W,h as Se,au as Ne,M as Pe}from"./index.js";import{M as ht}from"./motion.e37201e8.js";/*!
+import{d as Ht,w as Ot,a7 as Lt,z as me,j as P,H as pe,at as we,l as R,aE as be,F as Jt,y as Ce,bv as ve,bw as Dt,aw as Ee,_ as Te,r as jt,o as Be,c as Ae,C as W,h as Se,au as Ne,M as Pe}from"./index.js";import{M as ht}from"./motion.ab3cca28.js";/*!
  * is-plain-object <https://github.com/jonschlinkert/is-plain-object>
  *
  * Copyright (c) 2014-2017, Jon Schlinkert.

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/query-category.fa03a8.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/regist.bfca82.js


+ 0 - 0
dist/assets/rule.f572d646.js → dist/assets/rule.92addeb0.js


+ 0 - 0
dist/assets/tootip.50a62683.js → dist/assets/tootip.c29898b9.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/update.2f876b.js


+ 0 - 0
dist/assets/use-page-search.a9e96e45.js → dist/assets/use-page-search.496e3eda.js


+ 0 - 0
dist/assets/useDetail.b21d45df.js → dist/assets/useDetail.2f487ca5.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/verifyCode.4a957afe.js


+ 1 - 8
src/components/Input/src/number.vue

@@ -17,14 +17,7 @@ function valid(value) {
 
 watch(
   () => modelValue.value,
-  value => {
-    const num =  valid(value)
-    if(props.max > num){
-      modelValue.value = props.max
-    } else {
-      modelValue.value = modelValue.value
-    }
-  }
+  value =>  modelValue.value = valid(value)
 );
 </script>
 

+ 1 - 1
src/views/invoiceInOut/clientC/components/BaseForm/index.vue

@@ -111,7 +111,7 @@ function handleEditGood(index: number, data: any) {
 async function submitForm(){
     try{
         await formRef.value?.validate()
-        const { orders, goods, month} = formData.value
+        const { orders, goods, month } = formData.value
 
         const parameter = {
             manager_id: orders.map(item => item.id),

+ 158 - 0
src/views/invoiceInOut/clientC/components/NotOrderImportModal/columns-config.ts

@@ -0,0 +1,158 @@
+const columns = [
+  {
+    type: "index",
+    fixed: "left",
+    label: "序号",
+    width: "50"
+  },
+  {
+    label: '确认单编号',
+    prop: 'orderCode',
+    minWidth: '100px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label: '销售主单号',
+    prop: 'cxCode',
+    minWidth: '100px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label:'业务类型',
+    prop: 'type',
+    minWidth: '100px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label: '平台订单号',
+    prop: 'poCode',
+    minWidth: '120px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label: '销售方公司纳税号',
+    prop: 'seller_code',
+    minWidth: '130px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label: '销售方公司名称',
+    prop: 'seller_name',
+    minWidth: '130px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label: '购买方公司编号',
+    prop: 'buyer_code',
+    minWidth: '120px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label: '购买方公司名称',
+    prop: 'buyer_name',
+    minWidth: '120px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label: '商品类型',
+    prop: 'goodNo',
+    minWidth: '100px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label: '商品编号',
+    prop: 'goodNo',
+    minWidth: '100px',
+    defaultData: ''
+  },
+  {
+    label: '商品名称',
+    prop: 'goodName',
+    minWidth: '100px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label: '下单数量',
+    prop: 'num',
+    minWidth: '110px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label:'销售单价',
+    prop: 'goodPrice',
+    minWidth: '110px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label: '销售合计',
+    prop: 'totalPrice',
+    minWidth: '110px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label: '出库月份',
+    prop: 'fz_date',
+    minWidth: '80px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label: '关联商品ID',
+    prop: 'relaGoodNo',
+    minWidth: '110px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label: '操作数量',
+    prop: 'relaGoodNo',
+    minWidth: '100px',
+    required: true,
+    defaultData: ''
+  },
+  {
+    label: '子商品编号',
+    minWidth: '100px',
+    prop: 'childGoodNo',
+    defaultData: ''
+  },
+  {
+    label: '子商品数量',
+    minWidth: '100px',
+    prop: 'childGoodNo',
+    defaultData: ''
+  }
+]
+
+const notOrderTemplate = [columns.slice(1).reduce((prev, current) => {
+  return { ...prev, [current.label]: current.defaultData ? current.defaultData : '' }
+}, {})]
+
+
+export const mapLabelToProp = columns.reduce((prev, current) => ({
+  ...prev,
+  [current.label]: current.prop
+}), {})
+
+
+export const mapPropertyToLabel = columns.reduce((prev, current) => ({
+  ...prev,
+  [current.prop]: current.label
+}), {})
+
+export const requiredProps = columns.filter(column => !!column.required).map(item => item.prop)
+
+export { columns, notOrderTemplate };

+ 173 - 0
src/views/invoiceInOut/clientC/components/NotOrderImportModal/index.vue

@@ -0,0 +1,173 @@
+<script setup lang="ts">
+import { ref } from "vue";
+import { columns, mapLabelToProp } from "./columns-config";
+import { httpAdd } from "/@/api/invoiceInOut/inOutManager";
+import { ElButton, ElDialog, ElMessage } from "element-plus";
+import { execlUpload } from "/@/components/execlUpload";
+import { mapLabelToType } from "../../config/shared";
+import { mapLabelToInvtype } from "/@/utils/status";
+import { isImportDataValid } from "./validator";
+import { useResponseHandle } from "/@/hooks";
+import { useVModel } from "@vueuse/core";
+
+
+const props = defineProps<{ visible: boolean }>()
+const emit = defineEmits(["refresh"]);
+
+const tableData = ref([]);
+const loading = ref(false);
+
+const visible = useVModel(props, 'visible')
+const responseHandle = useResponseHandle();
+
+const Uploadsuccess = ({ results, header }) => {
+  loading.value = true;
+  if (results.length === 0) {
+    ElMessage.error("表格无有效数据!");
+    loading.value = false;
+    return;
+  }
+
+  let headok = true;
+
+  if (header.length !== columns.length - 1) {
+    headok = false;
+  } else {
+    columns.slice(1).forEach((si, sii) => {
+      if (si.label !== header[sii]) { 
+        headok = false; 
+      }
+    });
+  }
+
+  if (!headok) {
+    ElMessage.error("表头与导入模板不匹配!");
+    loading.value = false;
+    return;
+  }
+
+  tableData.value = [];
+
+  const result = []
+  for(const tableItem of results){
+    const item = {}
+    Object.keys(tableItem).forEach(label => {
+      const prop = mapLabelToProp[label]
+      item[prop] = tableItem[label]
+    })
+    result.push(item)
+  }
+
+  if(isImportDataValid(result)){ tableData.value = result }
+  loading.value = false;
+};
+
+//提交
+const handleSubmit = async () => {
+  try {
+    if (loading.value) return;
+    loading.value = true;
+
+    const list = [];
+
+    tableData.value.forEach(item => {
+      list.push({ 
+        ...item, 
+        inv_type: mapLabelToInvtype[item.inv_type],
+        relaArr: [{ id: 1, num: item.num }],
+        type: mapLabelToType[item.type],
+        platform_type: '2',
+        goodType: '1',
+        cat_code: '0',
+        cat_name: '0',
+        channel: '3',
+        source: '1',
+        unit: '0',
+        tax: '0',
+        inv_tax: '0',
+        inv_cat_code: '0'
+      })
+    })
+
+    const { code, message, data: _d } = await httpAdd({ list });
+
+    loading.value = false;
+
+    responseHandle({
+      code,
+      message,
+      noMessage: false,
+      handler: () => {
+        ElMessage.success("数据导入成功!");
+        emit("refresh");
+        visible.value = false;
+      }
+    });
+  } catch (err) { 
+    console.log(err)
+  }
+};
+const cancel = () => {
+  tableData.value = [];
+};
+</script>
+
+<template>
+  <ElDialog
+    v-model="visible"
+    :close-on-click-modal="false"
+    title="C端无发票非订单出库"
+    width="1040px"
+    top="8vh"
+    center
+  >
+    <execlUpload style="margin-bottom: 10px" @on-success="Uploadsuccess" v-if="tableData.length === 0" />
+
+    <el-table
+      :data="tableData"
+      stripe
+      border
+      max-height="500px"
+      size="small"
+      style="width: 100%"
+    >
+      <el-table-column
+        v-for="(si, sii) in columns"
+        :minWidth="si.minWidth"
+        show-overflow-tooltip
+        :fixed="si.fixed"
+        :prop="si.prop"
+        :type="si.type"
+        :key="sii"
+      >
+        <template #header>
+          <span v-if="!si.required">
+            {{ si.label }}
+          </span>
+          
+          <p v-else>
+            <span style="color: #f56c6c; font-size: 14px">* </span>
+            {{ si.label }}
+          </p>
+        </template>
+      </el-table-column>
+    </el-table>
+    <div
+      flex
+      justify-end
+      gap-2
+      v-if="tableData.length !== 0"
+      style="padding: 10px 0 0 0"
+    >
+      <ElButton size="small" @click="cancel">取消</ElButton>
+      <ElButton
+        size="small"
+        type="primary"
+        :loading="loading"
+        @click="handleSubmit"
+      >保存</ElButton>
+    </div>
+  </ElDialog>
+</template>
+
+<style lang="scss" scoped></style>

+ 76 - 0
src/views/invoiceInOut/clientC/components/NotOrderImportModal/validator.ts

@@ -0,0 +1,76 @@
+import { h } from "vue"
+import { ElMessageBox } from "element-plus"
+import { mapPropertyToLabel, requiredProps } from "./columns-config"
+import { mapLabelToSource, mapLabelToType, sourceOptions, typeOptions } from "../../config/shared"
+import { mapLabelToInvtype, xs_inv_type_list } from "/@/utils/status"
+
+function onDisplayErrorMessage(errors) {
+    ElMessageBox({
+        type: 'warning',
+        title: '数据校验失败',
+        message: h('div', { style: 'display: flex, flex-direction: column' }, {
+            default: () => Object.keys(errors).reduce((prev, index) => {
+                return [
+                    ...prev,
+                    h('p', {}, '第' + index  + '行,' + errors[index])
+                ]
+            }, [])
+        })
+    })
+}
+
+
+export function isValidRequired(results: any[]) {
+    const errors = {}
+
+    let isTypeError = false
+    let isSourceError = false
+    let isInvError = false
+
+    for (const sourceIndex in results) {
+        const item = results[sourceIndex];
+        const index = Number(sourceIndex) + 1;
+
+        for (const key in item) {
+            const value = String(item[key]).trim()
+            if (requiredProps.includes(key) && (!value || !String(value).trim())) {
+                if (errors[index]) {
+                    errors[index] = errors[index] += '、' + mapPropertyToLabel[key]
+                } else {
+                    errors[index] = mapPropertyToLabel[key]
+                }
+            } else if (key === 'type' && !mapLabelToType[value]){
+                isTypeError = true
+            } else if (key === 'source' && !mapLabelToSource[value]) {
+                isSourceError = true
+            } else if (key === 'inv_type' && !mapLabelToInvtype[value]){
+                isInvError = true
+            }
+        }
+
+        if (errors[index]) {
+            errors[index] += '不能为空'
+            if (isTypeError) errors[index] += ' , 类型必须为' + typeOptions.map(({ label }) => label).join('、')
+            if (isSourceError) errors[index] += ' ,订单来源必须为' + sourceOptions.map(({ label }) => label).join('、')
+            if (isInvError) errors[index] += ' ,发票类型必须为' + xs_inv_type_list.map(({ label }) => label).join('、')
+        } else {
+            if (isTypeError) errors[index] = '类型必须为' + typeOptions.map(({ label }) => label).join('、')
+            if (isSourceError) errors[index] = ' 订单来源必须为' + sourceOptions.map(({ label }) => label).join('、')
+            if (isInvError) errors[index] = ' 发票类型必须为' + xs_inv_type_list.map(({ label }) => label).join('、')
+        }
+    }
+
+
+    if (Object.keys(errors).length === 0) {
+        return true
+    } else {
+        onDisplayErrorMessage(errors)
+        return false
+    }
+}
+
+export function isImportDataValid(results: any[]) {
+    /* 校验必填字段是否填入 */
+    if (!isValidRequired(results)) { return false }
+    return true
+}

+ 7 - 0
src/views/invoiceInOut/clientC/components/OrderImportModal/columns-config.ts

@@ -61,6 +61,13 @@ const columns = [
     required: true,
     defaultData: ''
   },
+  {
+    label: '商品类型',
+    prop: 'goodNo',
+    minWidth: '100px',
+    required: true,
+    defaultData: ''
+  },
   {
     label: '商品编号',
     prop: 'goodNo',

+ 4 - 4
src/views/invoiceInOut/clientC/config/content.config.ts

@@ -62,14 +62,14 @@ const columns = [
     }
   },
   {
-    label: "卖出方公司",
+    label: "销售方公司",
     width: 160,
-    ...renderIconLabelLeft('seller_code', 'seller_name', '卖出方公司编号:')
+    ...renderIconLabelLeft('seller_code', 'seller_name', '销售方公司编号:')
   },
   {
-    label: "客户公司",
+    label: "购买方公司",
     width: 160,
-    ...renderIconLabelLeft('buyer_code', 'buyer_name', '客户公司编号:')
+    ...renderIconLabelLeft('buyer_code', 'buyer_name', '购买方公司编号:')
   },
   {
     label: '商品名称',

+ 37 - 37
src/views/invoiceInOut/clientC/index.vue

@@ -3,14 +3,17 @@ import { reactive, ref } from "vue";
 import { useRouter } from "vue-router";
 import { usePageSearch, type PageHooks, type PageEvents } from "/@/hooks/page";
 import OrderImportModal from "./components/OrderImportModal/index.vue"
-import { orderTemplate } from "./components/OrderImportModal/columns-config"
+import NotOrderImportModal from "./components/NotOrderImportModal/index.vue"
 import { useRenderIcon } from "/@/components/ReIcon/src/hooks"
 import contentConfig from "./config/content.config";
 import searchConfig from "./config/search.config";
 import { utils, writeFile } from "xlsx";
-import { ElButton } from "element-plus";
+import { ElButton, ElDropdown } from "element-plus";
 import { useUserInfo } from "/@/hooks/core/useUser";
 
+import { orderTemplate } from "./components/OrderImportModal/columns-config"
+import { notOrderTemplate } from "./components/NotOrderImportModal/columns-config"
+
 
 const PageName = "inOutManager";
 const router = useRouter();
@@ -29,55 +32,52 @@ const events: PageEvents = {
   }
 };
 
-function handleDownloadTemplate(){
+function handleDownloadTemplate(isOrder = false){
+  const data = isOrder ? orderTemplate : notOrderTemplate
+  const name = isOrder ? 'C端无发票订单出库模板.xlsx' : 'C端无发票非订单出库模板.xlsx'
+
   const workBook = utils.book_new()
-  const workSheet = utils.json_to_sheet(orderTemplate)
+  const workSheet = utils.json_to_sheet(data)
   utils.book_append_sheet(workBook, workSheet, 'sheet');
-  writeFile(workBook, 'C端无发票订单出库模板.xlsx', { bookType: 'xlsx' })
+  writeFile(workBook, name, { bookType: 'xlsx' })
 }
 </script>
 
 <template>
   <PageAuth :pageName="PageName">
-    <PageContainer 
-      :hooks="hooks" 
-      :events="events" 
-      :searchConfig="searchConfig" 
-      :contentConfig="contentConfig"
+    <PageContainer :hooks="hooks" :events="events" :searchConfig="searchConfig" :contentConfig="contentConfig"
       :get-content-ref="ref => pageContentRef = ref">
       <template #content_header>
-        <ElButton
-          v-if="!isSuperUser"
-          size="small" 
-          type="primary" 
-          style="margin-right: 10px;margin-top:1px"
-          :icon="useRenderIcon('arrow-up-line')" 
-          @click="state.orderImportVisible = true"
-        >C端无发票订单出库导入
-        </ElButton>
+        <ElDropdown>
+          <ElButton v-if="!isSuperUser" size="small" type="primary" style="margin-right: 10px;margin-top:1px"
+            :icon="useRenderIcon('arrow-up-line')">C端无发票订单出库导入
+          </ElButton>
 
-        <ElButton 
-          size="small" 
-          style="margin-right: 10px;margin-top:1px" 
-          @click="handleDownloadTemplate"
-          :icon="useRenderIcon('arrow-down-line')"
-        >C端无发票订单出库模板
-        </ElButton>
- 
-        <ElButton
-         v-if="!isSuperUser"
-          size="small" 
-          type="primary"
-          @click="router.push('/invoiceInOut/clinetCDetail')"
-        >批量审核
+          <template #dropdown>
+            <ElDropdownItem @click="state.orderImportVisible = true">订单导入</ElDropdownItem>
+            <ElDropdownItem @click="state.notOrderImportVisible = true">非订单导入</ElDropdownItem>
+          </template>
+        </ElDropdown>
+
+        <ElDropdown>
+          <ElButton size="small" style="margin-right: 10px;margin-top:1px" :icon="useRenderIcon('arrow-down-line')">
+            C端无发票订单出库模板
+          </ElButton>
+
+          <template #dropdown>
+            <ElDropdownItem @click="handleDownloadTemplate(true)">订单导入</ElDropdownItem>
+            <ElDropdownItem @click="handleDownloadTemplate(false)">非订单导入</ElDropdownItem>
+          </template>
+        </ElDropdown>
+
+        <ElButton v-if="!isSuperUser" size="small" type="primary" @click="router.push('/invoiceInOut/clinetCDetail')">
+          批量审核
         </ElButton>
       </template>
-
-      <!-- <template #content_action="{ row }">
-        <ElButton type="danger" :icon="useRenderIcon('delete')" />
-      </template> -->
     </PageContainer>
 
     <OrderImportModal v-model:visible="state.orderImportVisible" @refresh="pageContentRef?.onSearch()" />
+
+    <NotOrderImportModal v-model:visible="state.notOrderImportVisible" @refresh="pageContentRef?.onSearch()" />
   </PageAuth>
 </template>

+ 1 - 1
src/views/invoiceInOut/inManager/components/NotOrderImportModal/index.vue

@@ -77,7 +77,7 @@ const Uploadsuccess = ({ results, header }) => {
       // } else {
       // }
 
-      item[prop] = value
+      item[prop] = value.trim()
     })
 
     result.push(item)

+ 1 - 1
src/views/invoiceInOut/inManager/components/OrderImportModal/index.vue

@@ -68,7 +68,7 @@ const Uploadsuccess = ({ results, header }) => {
         value = value.replace(')', ')')
       }
 
-      item[prop] = value
+      item[prop] = value.trim()
     })
 
     result.push(item)

+ 1 - 1
src/views/invoiceInOut/inManager/config/content.config.ts

@@ -312,7 +312,7 @@ const contentConfig: ContentConfig = {
   columns,
   title: "商品管理",
   permissions: ['007'],
-  companyProp: 'inv_buyer_code',
+  companyProp: 'buyer_code',
   apis: { 
     httpList: (parameter = {}) => httpList({ ...parameter, channel: [1, 2], type: [1, 3] }),
     httpAdd: true

+ 6 - 6
src/views/invoiceInOut/inManager/index.vue

@@ -50,16 +50,16 @@ function onDownload(type = 'notOrder'){
 }
 
 
-function handleRefresh(){
-  if(selection.value.length === 0){
-    ElMessage.warning('请选择至少一条状态为 "待审核" 的数据')
+function handleRefresh() {
+  if (selection.value.length === 0) {
+    ElMessage.warning('请选择至少一条状态为 "待审核" 或 "异常" 的数据')
     return
   }
 
-  const isStatusNotOk = selection.value.some(({ status }) => status != '1')
+  const isStatusNotOk = selection.value.some(({ status }) => status != '1' && status != '4')
 
-  if(isStatusNotOk){
-    ElMessage.warning('只能选择状态为 "待审核" 的数据')
+  if (isStatusNotOk) {
+    ElMessage.warning('只能选择状态为 "待审核" 或 "异常" 的数据')
     return
   }
 

+ 6 - 4
src/views/invoiceInOut/outManager/components/ChooseGoodModal/config/content.config.ts

@@ -65,9 +65,11 @@ const columns = [
     prop: "status",
     width: 80,
     cellRenderer({ row }){
-      return h(ElTag, { size: 'small', type: statusList.find(item => item.value == row.status)?.type || 'warning' }, {
-        default: () => statusList.find(item => item.value == row.status)?.label || '--'
-      })
+      return h(
+        ElTag, 
+        { size: 'small', type: statusList.find(item => item.value == row.status)?.type || 'warning' }, 
+        { default: () => statusList.find(item => item.value == row.status)?.label || '--' }
+    )
     }
   },
   {
@@ -104,7 +106,7 @@ const columns = [
 
 const contentConfig: ContentConfig = {
   columns,
-  companyProp: 'seller_code',
+  companyProp: 'buyer_code',
   apis: { 
     httpList: (parameter = {}) => httpList({ ...parameter, status: '1' })
   }

+ 31 - 21
src/views/invoiceInOut/outManager/detail.vue

@@ -137,15 +137,27 @@ async function onSubmit() {
       }
     }
 
-    loading.value = true
+    if( Number(detailTask.data.balance_num) !== Number(total.value)){
+      ElMessage.warning('操作数量必须等于待处理数量')
+      return
+    }
+
+    const list = formData.value.goods.filter(item => !!item.num)
+
 
+    if(list.length !== 0){
+      ElMessage.warning('商品操作数量不能为空')
+      return
+    }
+
+
+    loading.value = true
     const { code, message } = await httpStatus({ 
       relaArr, 
       manager_id: id.value,
       is_checkOrder: hasJT.value ? '1' : '0',
       fz_date: formData.value.month
     })
-   
     loading.value = false
 
     if (code == 0) {
@@ -164,30 +176,22 @@ function handleEditGood(index, data) {
   formData.value.goods.forEach((item, index) => {
     if (item.id === id) {
       formData.value.goods[index].goodNum = data.goodNum
+      const { goodNum, residue_stock } = data
+      formData.value.goods[index].isJT = goodNum > residue_stock
       if (formData.value.goods[index].childNum) { 
+        formData.value.goods[index].isJT = goodNum > residue_stock
         formData.value.goods[index].childActionNum = formData.value.goods[index].childNum * data.goodNum 
       }
     }
   })
 }
 
-
 function handleShowDetail(id, index){
   productVisible.value = true
   productIndex.value = index
   productDetailTask.run(httpProductDetail({ id }))
 }
 
-function handleAddTJProduct(){
-  if(hasJT.value){
-    ElMessage.warning('只能添加一条计提商品')
-    return
-  } else {
-    isJT.value = true
-    visible.value = true
-  }
-}
-
 function handleDelete(index) {
   const { id } = formData.value.goods[index]
   formData.value.goods = formData.value.goods.filter((item) => item.id !== id)
@@ -204,7 +208,7 @@ id.value && detailTask.run(httpDetail({ id: id.value }))
         <BasicDescriptions :columns="orderGoodColumns" :data="detailTask.data" v-if="detailTask.data" />
       </ElCollapseItem>
 
-      <ElCollapseItem :title="'订单详情'" name="2">
+      <ElCollapseItem title="订单详情" name="2">
         <BasicDescriptions v-if="detailTask.data" :columns="importOrderGoodColumns" :data="detailTask.data" />
       </ElCollapseItem>
 
@@ -217,7 +221,7 @@ id.value && detailTask.run(httpDetail({ id: id.value }))
           <ElTableColumn label="商品ID" prop="product_id" width="60px" show-overflow-tooltip />
           <ElTableColumn label="商品编号" prop="skuCode" show-overflow-tooltip />
           <ElTableColumn label="商品名称" prop="goodName" show-overflow-tooltip />
-          <ElTableColumn label="操作数量" prop="num" show-overflow-tooltip />
+          <ElTableColumn label="操作数量" prop="num" width="60px" show-overflow-tooltip />
           <ElTableColumn label="创建时间" prop="create_time" show-overflow-tooltip />
           <ElTableColumn label="操作" width="100px">
             <template #="scope">
@@ -233,7 +237,7 @@ id.value && detailTask.run(httpDetail({ id: id.value }))
       <ElCollapseItem name="5" title="待处理信息" v-if="!isSuperUser && detailTask.data && (detailTask.data.status == '1' || detailTask.data.status == '4')">
         <div class="w-full flex justify-between mb-[10px]">
           <p>待处理 {{ Number(detailTask.data.balance_num) }} / {{ total }}</p>
-          <ElButton type="primary" size="small" @click="handleAddTJProduct">添加计提商品</ElButton>
+          <!-- <ElButton type="primary" size="small" @click="handleAddTJProduct">添加计提商品</ElButton> -->
         </div>
 
         <ElForm ref="formRef" :rules="rules" :model="formData">
@@ -242,7 +246,6 @@ id.value && detailTask.run(httpDetail({ id: id.value }))
               <ElTableColumn label="商品ID" prop="id" width="60px" show-overflow-tooltip />
               <ElTableColumn label="商品编号" prop="skuCode" show-overflow-tooltip />
               <ElTableColumn label="商品名称" prop="goodName" show-overflow-tooltip />
-              <ElTableColumn label="操作数量" prop="goodNum" show-overflow-tooltip />
 
               <ElTableColumn label="是否为计提" prop="residue_stock" width="80px" show-overflow-tooltip>
                 <template #="{ row }">
@@ -251,8 +254,10 @@ id.value && detailTask.run(httpDetail({ id: id.value }))
               </ElTableColumn>
 
               <ElTableColumn label="结存数" prop="residue_stock" width="80px" show-overflow-tooltip />
+              <ElTableColumn label="操作数量" prop="goodNum" show-overflow-tooltip />
+
               <ElTableColumn label="子商品编号" prop="childCode" show-overflow-tooltip />
-              <ElTableColumn label="销售方公司纳税识别号" width="140px" prop="seller_code" show-overflow-tooltip />
+              <!-- <ElTableColumn label="销售方公司纳税识别号" width="140px" prop="seller_code" show-overflow-tooltip /> -->
               <ElTableColumn label="子商品比例" prop="childNum" show-overflow-tooltip />
               <ElTableColumn label="子商品操作数量" prop="childActionNum" width="110px" show-overflow-tooltip />
 
@@ -282,7 +287,6 @@ id.value && detailTask.run(httpDetail({ id: id.value }))
             </ElTable>
           </ElFormItem>
 
-          <!-- :company_code="detailTask.data.buyer_code" -->
           <ElFormItem label="入账月份" prop="month">
             <SealMonthPicker placeholder="入账月份" v-model="formData.month" />
           </ElFormItem>
@@ -294,10 +298,16 @@ id.value && detailTask.run(httpDetail({ id: id.value }))
       </ElCollapseItem>
     </ElCollapse>
 
-    <ChooseGoodModal v-model:visible="visible" :isJT="isJT" :otherSearchParameter="searchParameter"
+    <ChooseGoodModal 
+      v-model:visible="visible" 
+      :isJT="isJT" 
+      :otherSearchParameter="searchParameter"
       @submit="handleGoodComfirm" :skuCode="notJTList.length === 0 ? '' : notJTList[0].skuCode" />
 
-    <ChildGoodEditModal :data="state.data" :index="state.index" v-model:visible="state.editVisible"
+    <ChildGoodEditModal 
+      :data="state.data" 
+      :index="state.index" 
+      v-model:visible="state.editVisible"
       @submit="handleEditGood" />
 
     <ElDialog center title="商品详情" v-model="productVisible" style="overflow: hidden">

+ 3 - 3
src/views/invoiceInOut/outManager/index.vue

@@ -51,14 +51,14 @@ function onDownload(type = 'notOrder'){
 
 function handleRefresh() {
   if (selection.value.length === 0) {
-    ElMessage.warning('请选择至少一条状态为 "待审核" 的数据')
+    ElMessage.warning('请选择至少一条状态为 "待审核" 或 "异常" 的数据')
     return
   }
 
-  const isStatusNotOk = selection.value.some(({ status }) => status != '1')
+  const isStatusNotOk = selection.value.some(({ status }) => status != '1' && status != '4')
 
   if (isStatusNotOk) {
-    ElMessage.warning('只能选择状态为 "待审核" 的数据')
+    ElMessage.warning('只能选择状态为 "待审核" 或 "异常" 的数据')
     return
   }
 

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä