snow 3 bulan lalu
induk
melakukan
ff3e879ccb
100 mengubah file dengan 258 tambahan dan 149 penghapusan
  1. 0 0
      dist/assets/BaseForm.4b5981.js
  2. 0 0
      dist/assets/BaseForm.74360a.js
  3. 0 0
      dist/assets/ChildGoodEditModal.396f34.js
  4. 0 0
      dist/assets/ChildGoodEditModal.6c6e20.js
  5. 1 1
      dist/assets/ChildGoodEditModal.7967d3.js
  6. 0 0
      dist/assets/ChildGoodEditModal.b0de1a.js
  7. 1 1
      dist/assets/ChildGoodEditModal.d0c9e8.js
  8. 1 1
      dist/assets/InvoiceTitle.77bebe.js
  9. 1 1
      dist/assets/InvoiceTitle.7eecae.js
  10. 0 0
      dist/assets/basic-descriptions.ed5fa05b.js
  11. 0 0
      dist/assets/columnRenderHelper.0fffc49a.js
  12. 0 0
      dist/assets/columns.b9bdd599.js
  13. 0 0
      dist/assets/columns.bc29d0ef.js
  14. 0 0
      dist/assets/detail.0c0a3e.js
  15. 0 0
      dist/assets/detail.40f304.js
  16. 1 1
      dist/assets/detail.48dab8.js
  17. 0 0
      dist/assets/detail.7429a6.js
  18. 0 0
      dist/assets/detail.81a26f.js
  19. 0 0
      dist/assets/detail.86fc1b.js
  20. 0 0
      dist/assets/detail.a9d661.js
  21. 0 0
      dist/assets/detail.c83bca.js
  22. 0 0
      dist/assets/detail.fcf95b.js
  23. 0 0
      dist/assets/execl-upload.53a63a00.js
  24. 0 0
      dist/assets/index.04a7a9.js
  25. 0 0
      dist/assets/index.0975b0.js
  26. 0 0
      dist/assets/index.0984e6.js
  27. 1 1
      dist/assets/index.0a09d146.js
  28. 0 0
      dist/assets/index.0dbb49.js
  29. 0 0
      dist/assets/index.0e3c1568.js
  30. 0 0
      dist/assets/index.106d7bc3.js
  31. 0 0
      dist/assets/index.14adc6.js
  32. 0 0
      dist/assets/index.1a00d0fc.js
  33. 0 0
      dist/assets/index.1ddafc.js
  34. 0 0
      dist/assets/index.23a090.js
  35. 0 0
      dist/assets/index.255f07.js
  36. 0 0
      dist/assets/index.26a26c.js
  37. 0 0
      dist/assets/index.2d40b4c7.js
  38. 0 0
      dist/assets/index.2d5352.js
  39. 0 0
      dist/assets/index.303734.js
  40. 0 0
      dist/assets/index.31f324.js
  41. 0 0
      dist/assets/index.34beaa.js
  42. 0 0
      dist/assets/index.42e1e3.js
  43. 0 0
      dist/assets/index.457a64.js
  44. 0 0
      dist/assets/index.48911ef0.js
  45. 0 0
      dist/assets/index.4cf9ee.js
  46. 0 0
      dist/assets/index.52bb3f.js
  47. 0 0
      dist/assets/index.603aa9.js
  48. 0 0
      dist/assets/index.651ec0.js
  49. 0 0
      dist/assets/index.657efd2f.js
  50. 0 0
      dist/assets/index.674a5d.js
  51. 0 0
      dist/assets/index.676238.js
  52. 0 0
      dist/assets/index.68d8832d.js
  53. 0 0
      dist/assets/index.6b0300.js
  54. 0 0
      dist/assets/index.6e79eb.js
  55. 0 0
      dist/assets/index.766352.js
  56. 0 0
      dist/assets/index.775568.js
  57. 0 0
      dist/assets/index.77e8d1.js
  58. 0 0
      dist/assets/index.7c4279.js
  59. 0 0
      dist/assets/index.80a2657b.js
  60. 0 0
      dist/assets/index.9aae28.js
  61. 0 0
      dist/assets/index.9fb413.js
  62. 0 0
      dist/assets/index.9fd33b.js
  63. 0 0
      dist/assets/index.b5ecab06.js
  64. 0 0
      dist/assets/index.bdcf42.js
  65. 0 0
      dist/assets/index.c1687a.js
  66. 0 0
      dist/assets/index.c2487c.js
  67. 0 0
      dist/assets/index.c48d03.js
  68. 0 0
      dist/assets/index.c7e0f4.js
  69. 1 0
      dist/assets/index.cfc1517e.js
  70. 0 0
      dist/assets/index.d03c87b5.js
  71. 0 0
      dist/assets/index.d6108c.js
  72. 0 0
      dist/assets/index.ddd736.js
  73. 0 0
      dist/assets/index.e3af7c.js
  74. 0 0
      dist/assets/index.eb8252.js
  75. 0 0
      dist/assets/index.ef38b5.js
  76. 0 0
      dist/assets/index.f97f53.js
  77. 1 0
      dist/assets/index.fac28d39.js
  78. 0 0
      dist/assets/index.ff51ce.js
  79. 0 0
      dist/assets/index.js
  80. 0 0
      dist/assets/motion.76ecb273.js
  81. 0 0
      dist/assets/phone.9e1123.js
  82. 1 1
      dist/assets/qrCode.be32d8.js
  83. 0 0
      dist/assets/regist.bfca82.js
  84. 0 0
      dist/assets/rule.72e5441a.js
  85. 0 0
      dist/assets/tootip.14850d7b.js
  86. 0 0
      dist/assets/update.2f876b.js
  87. 0 0
      dist/assets/use-page-search.132f00c2.js
  88. 0 0
      dist/assets/useDetail.6849c189.js
  89. 0 0
      dist/assets/verifyCode.3f42e487.js
  90. 18 0
      src/components/ErrorDialog/index.vue
  91. 22 0
      src/components/importTableColumn/index.vue
  92. 47 5
      src/views/invoiceInOut/clientC/components/BaseForm/index.vue
  93. 3 4
      src/views/invoiceInOut/clientC/components/ChooseGoodModal/config/search.config.ts
  94. 3 4
      src/views/invoiceInOut/clientC/components/ChooseGoodModal/index.vue
  95. 21 2
      src/views/invoiceInOut/clientC/components/ChooseOrderModal/config/content.config.ts
  96. 15 1
      src/views/invoiceInOut/clientC/components/ChooseOrderModal/index.vue
  97. 12 12
      src/views/invoiceInOut/clientC/components/NotOrderImportModal/columns-config.ts
  98. 35 42
      src/views/invoiceInOut/clientC/components/NotOrderImportModal/index.vue
  99. 39 43
      src/views/invoiceInOut/clientC/components/OrderImportModal/index.vue
  100. 34 29
      src/views/invoiceInOut/clientC/detail.vue

File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/BaseForm.4b5981.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/BaseForm.74360a.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/ChildGoodEditModal.396f34.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/ChildGoodEditModal.6c6e20.js


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

@@ -1 +1 @@
-import{_ as B,d as C,a$ as _,w as x,z as V,r as y,o as i,G as d,C as n,l as a,a as b,h as s,j as r,aO as h,M as w,ah as D,b0 as k}from"./index.js";import{a as E}from"./columns.35c24369.js";import{B as M}from"./basic-descriptions.829246b2.js";import"./status.b7512d56.js";import"./tootip.b2737797.js";const F={class:"flex justify-between mt-[10px]"},N={class:"flex items-center"},G=C({__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=_(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"])):b("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(h),{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 C,a$ as _,w as x,z as V,r as y,o as i,G as d,C as n,l as a,a as b,h as s,j as r,aO as h,M as w,ah as D,b0 as k}from"./index.js";import{a as E}from"./columns.bc29d0ef.js";import{B as M}from"./basic-descriptions.ed5fa05b.js";import"./status.b7512d56.js";import"./tootip.14850d7b.js";const F={class:"flex justify-between mt-[10px]"},N={class:"flex items-center"},G=C({__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=_(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"])):b("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(h),{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};

File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/ChildGoodEditModal.b0de1a.js


+ 1 - 1
dist/assets/ChildGoodEditModal.d0c9e8.js

@@ -1 +1 @@
-import{_ as C,d as _,a$ as x,w as V,z as y,r as b,o as i,G as d,C as n,l as a,a as B,h as u,j as r,aO as h,M as w,ah as D,b0 as F}from"./index.js";import{g as N}from"./columns.165ca691.js";import{B as k}from"./basic-descriptions.829246b2.js";import"./status.b7512d56.js";import"./shared.a743a5f7.js";import"./tootip.b2737797.js";const E={class:"flex justify-between mt-[10px]"},g={class:"flex items-center"},M=_({__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=x(t,"visible"),l=V(0);y(()=>o.value,()=>{!o.value||(l.value=t.data.goodNum)});function f(){c("submit",t.index,{...t.data,goodNum:l.value}),o.value=!1}return(G,e)=>{const v=b("ElButton");return i(),d(a(F),{modelValue:a(o),"onUpdate:modelValue":e[1]||(e[1]=s=>D(o)?o.value=s:null),title:"\u7F16\u8F91\u5546\u54C1",center:""},{default:n(()=>[t.data?(i(),d(a(k),{key:0,style:{overflow:"hidden"},data:t.data,columns:a(N)},null,8,["data","columns"])):B("v-if",!0),u("div",E,[u("div",g,[e[2]||(e[2]=u("p",{style:{width:"110px"}},"\u64CD\u4F5C\u6570\u91CF:",-1)),r(a(h),{modelValue:l.value,"onUpdate:modelValue":e[0]||(e[0]=s=>l.value=s),placeholder:"\u64CD\u4F5C\u6570\u91CF"},null,8,["modelValue"])]),r(v,{type:"primary",onClick:f},{default:n(()=>e[3]||(e[3]=[w("\u4FDD\u5B58")])),_:1})])]),_:1},8,["modelValue"])}}});var R=C(M,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/views/invoiceInOut/clientC/components/ChildGoodEditModal.vue"]]);export{R as default};
+import{_ as C,d as _,a$ as x,w as V,z as y,r as b,o as i,G as d,C as n,l as a,a as B,h as u,j as r,aO as h,M as w,ah as D,b0 as F}from"./index.js";import{g as N}from"./columns.b9bdd599.js";import{B as k}from"./basic-descriptions.ed5fa05b.js";import"./status.b7512d56.js";import"./shared.a743a5f7.js";import"./tootip.14850d7b.js";const E={class:"flex justify-between mt-[10px]"},g={class:"flex items-center"},M=_({__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=x(t,"visible"),l=V(0);y(()=>o.value,()=>{!o.value||(l.value=t.data.goodNum)});function f(){c("submit",t.index,{...t.data,goodNum:l.value}),o.value=!1}return(G,e)=>{const v=b("ElButton");return i(),d(a(F),{modelValue:a(o),"onUpdate:modelValue":e[1]||(e[1]=s=>D(o)?o.value=s:null),title:"\u7F16\u8F91\u5546\u54C1",center:""},{default:n(()=>[t.data?(i(),d(a(k),{key:0,style:{overflow:"hidden"},data:t.data,columns:a(N)},null,8,["data","columns"])):B("v-if",!0),u("div",E,[u("div",g,[e[2]||(e[2]=u("p",{style:{width:"110px"}},"\u64CD\u4F5C\u6570\u91CF:",-1)),r(a(h),{modelValue:l.value,"onUpdate:modelValue":e[0]||(e[0]=s=>l.value=s),placeholder:"\u64CD\u4F5C\u6570\u91CF"},null,8,["modelValue"])]),r(v,{type:"primary",onClick:f},{default:n(()=>e[3]||(e[3]=[w("\u4FDD\u5B58")])),_:1})])]),_:1},8,["modelValue"])}}});var R=C(M,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/views/invoiceInOut/clientC/components/ChildGoodEditModal.vue"]]);export{R as default};

+ 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.829246b2.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.ed5fa05b.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.4f9e44f6.js";import{B as c}from"./basic-descriptions.829246b2.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.4f9e44f6.js";import{B as c}from"./basic-descriptions.ed5fa05b.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.829246b2.js → dist/assets/basic-descriptions.ed5fa05b.js


+ 0 - 0
dist/assets/columnRenderHelper.959674ef.js → dist/assets/columnRenderHelper.0fffc49a.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/columns.b9bdd599.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/columns.bc29d0ef.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/detail.0c0a3e.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/detail.40f304.js


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

@@ -1 +1 @@
-import{_ as n,d as p,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.a97445a4.js";import D from"./BaseForm.74360a.js";import{P as g}from"./index.1c533194.js";import{a as h}from"./index.9c22e4f6.js";import"./status.b7512d56.js";import"./InvoiceTitle.77bebe.js";import"./basic-descriptions.829246b2.js";import"./use-page-search.d2caaa5e.js";import"./columns.35c24369.js";import"./tootip.b2737797.js";import"./ChildGoodEditModal.7967d3.js";import"./query-category.fa03a8.js";const y={class:"padding__container"},x={class:"my-[5px]",style:{"font-size":"14px"}},B=p({__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 S=n(B,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/views/invoiceInOut/productManager/detail.vue"]]);export{S as default};
+import{_ as n,d as p,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.6849c189.js";import D from"./BaseForm.74360a.js";import{P as g}from"./index.1a00d0fc.js";import{a as h}from"./index.657efd2f.js";import"./status.b7512d56.js";import"./InvoiceTitle.77bebe.js";import"./basic-descriptions.ed5fa05b.js";import"./use-page-search.132f00c2.js";import"./columns.bc29d0ef.js";import"./tootip.14850d7b.js";import"./ChildGoodEditModal.7967d3.js";import"./query-category.fa03a8.js";const y={class:"padding__container"},x={class:"my-[5px]",style:{"font-size":"14px"}},B=p({__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 S=n(B,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/views/invoiceInOut/productManager/detail.vue"]]);export{S as default};

File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/detail.7429a6.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/detail.81a26f.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/detail.86fc1b.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/detail.a9d661.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/detail.c83bca.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/detail.fcf95b.js


+ 0 - 0
dist/assets/execl-upload.5daa33cd.js → dist/assets/execl-upload.53a63a00.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.04a7a9.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.0975b0.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.0984e6.js


+ 1 - 1
dist/assets/index.ed93dbf2.js → dist/assets/index.0a09d146.js

@@ -1 +1 @@
-import{d as E,w as c,aY as D,r as l,at as b,o as d,c as m,j as e,C as s,l as i,J as B,H as k,G as y,a as F,_ as P}from"./index.js";import{h as x}from"./index.c579968e.js";import{P as T}from"./index.6a9f69da.js";const g={class:"w-full"},R=E({__name:"index",props:{ProductRela:{type:Array,required:!0}},setup(V){const p=c(!1),a=c(0),u=D();function _(t,n){p.value=!0,a.value=n,u.run(x({id:t}))}return(t,n)=>{const o=l("ElTableColumn"),v=l("ElButton"),f=l("ElTooltip"),w=l("ElTable"),C=l("ElDialog"),h=b("loading");return d(),m("div",g,[e(w,{size:"small",border:"",data:t.ProductRela},{default:s(()=>[e(o,{label:"\u5546\u54C1ID",prop:"product_id",width:"60px","show-overflow-tooltip":""}),e(o,{label:"\u5546\u54C1\u7F16\u53F7",prop:"skuCode","show-overflow-tooltip":""}),e(o,{label:"\u5546\u54C1\u540D\u79F0",prop:"goodName","show-overflow-tooltip":""}),e(o,{label:"\u64CD\u4F5C\u6570\u91CF",prop:"num",width:"80px","show-overflow-tooltip":""}),e(o,{label:"\u64CD\u4F5C\u4EBA",prop:"apply_name",width:"80px","show-overflow-tooltip":""}),e(o,{label:"\u521B\u5EFA\u65F6\u95F4",prop:"create_time","show-overflow-tooltip":""}),e(o,{label:"\u64CD\u4F5C",width:"100px"},{default:s(r=>[e(f,{content:"\u67E5\u770B\u8BE6\u60C5"},{default:s(()=>[e(v,{type:"primary",link:"",icon:i(B)("eye-view"),onClick:A=>_(r.row.product_id,r.$index)},null,8,["icon","onClick"])]),_:2},1024)]),_:1})]),_:1},8,["data"]),e(C,{center:"",title:"\u5546\u54C1\u8BE6\u60C5",modelValue:p.value,"onUpdate:modelValue":n[0]||(n[0]=r=>p.value=r),style:{overflow:"hidden"}},{default:s(()=>[k((d(),m("div",null,[i(u).data?(d(),y(T,{key:0,data:i(u).data,num:t.ProductRela[a.value].num,time:t.ProductRela[a.value].create_time,name:t.ProductRela[a.value].apply_name},null,8,["data","num","time","name"])):F("v-if",!0)])),[[h,i(u).loading]])]),_:1},8,["modelValue"])])}}});var U=P(R,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/components/BasicProducts/index.vue"]]);export{U as B};
+import{d as E,w as c,aY as D,r as l,at as b,o as d,c as m,j as e,C as s,l as i,J as B,H as k,G as y,a as F,_ as P}from"./index.js";import{h as x}from"./index.68d8832d.js";import{P as T}from"./index.0e3c1568.js";const g={class:"w-full"},R=E({__name:"index",props:{ProductRela:{type:Array,required:!0}},setup(V){const p=c(!1),a=c(0),u=D();function _(t,n){p.value=!0,a.value=n,u.run(x({id:t}))}return(t,n)=>{const o=l("ElTableColumn"),v=l("ElButton"),f=l("ElTooltip"),w=l("ElTable"),C=l("ElDialog"),h=b("loading");return d(),m("div",g,[e(w,{size:"small",border:"",data:t.ProductRela},{default:s(()=>[e(o,{label:"\u5546\u54C1ID",prop:"product_id",width:"60px","show-overflow-tooltip":""}),e(o,{label:"\u5546\u54C1\u7F16\u53F7",prop:"skuCode","show-overflow-tooltip":""}),e(o,{label:"\u5546\u54C1\u540D\u79F0",prop:"goodName","show-overflow-tooltip":""}),e(o,{label:"\u64CD\u4F5C\u6570\u91CF",prop:"num",width:"80px","show-overflow-tooltip":""}),e(o,{label:"\u64CD\u4F5C\u4EBA",prop:"apply_name",width:"80px","show-overflow-tooltip":""}),e(o,{label:"\u521B\u5EFA\u65F6\u95F4",prop:"create_time","show-overflow-tooltip":""}),e(o,{label:"\u64CD\u4F5C",width:"100px"},{default:s(r=>[e(f,{content:"\u67E5\u770B\u8BE6\u60C5"},{default:s(()=>[e(v,{type:"primary",link:"",icon:i(B)("eye-view"),onClick:A=>_(r.row.product_id,r.$index)},null,8,["icon","onClick"])]),_:2},1024)]),_:1})]),_:1},8,["data"]),e(C,{center:"",title:"\u5546\u54C1\u8BE6\u60C5",modelValue:p.value,"onUpdate:modelValue":n[0]||(n[0]=r=>p.value=r),style:{overflow:"hidden"}},{default:s(()=>[k((d(),m("div",null,[i(u).data?(d(),y(T,{key:0,data:i(u).data,num:t.ProductRela[a.value].num,time:t.ProductRela[a.value].create_time,name:t.ProductRela[a.value].apply_name},null,8,["data","num","time","name"])):F("v-if",!0)])),[[h,i(u).loading]])]),_:1},8,["modelValue"])])}}});var U=P(R,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/components/BasicProducts/index.vue"]]);export{U as B};

File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.0dbb49.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.0e3c1568.js


+ 0 - 0
dist/assets/index.31ed6a68.js → dist/assets/index.106d7bc3.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.14adc6.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.1a00d0fc.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.1ddafc.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.23a090.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.255f07.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.26a26c.js


+ 0 - 0
dist/assets/index.fd9201f0.js → dist/assets/index.2d40b4c7.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.2d5352.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.303734.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.31f324.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.34beaa.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.42e1e3.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.457a64.js


+ 0 - 0
dist/assets/index.0baecd57.js → dist/assets/index.48911ef0.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.4cf9ee.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.52bb3f.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.603aa9.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.651ec0.js


+ 0 - 0
dist/assets/index.9c22e4f6.js → dist/assets/index.657efd2f.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.674a5d.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.676238.js


+ 0 - 0
dist/assets/index.c579968e.js → dist/assets/index.68d8832d.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.6b0300.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.6e79eb.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.766352.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.775568.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.77e8d1.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.7c4279.js


+ 0 - 0
dist/assets/index.cdfadb9e.js → dist/assets/index.80a2657b.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.9aae28.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.9fb413.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.9fd33b.js


+ 0 - 0
dist/assets/index.2cf18adf.js → dist/assets/index.b5ecab06.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.bdcf42.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.c1687a.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.c2487c.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.c48d03.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.c7e0f4.js


+ 1 - 0
dist/assets/index.cfc1517e.js

@@ -0,0 +1 @@
+import{d as p,a$ as n,o as d,G as m,C as o,j as a,l as e,aM as c,aN as s,ah as b,b0 as f,_ as E}from"./index.js";const _=p({__name:"index",props:{visible:{type:Boolean,required:!0},list:{type:Array,required:!0},title:{type:String,required:!0}},setup(i){const t=n(i,"visible");return(r,l)=>(d(),m(e(f),{modelValue:e(t),"onUpdate:modelValue":l[0]||(l[0]=u=>b(t)?t.value=u:null),title:r.title,"append-to-body":!0,center:""},{default:o(()=>[a(e(c),{data:r.list,border:"",size:"small"},{default:o(()=>[a(e(s),{label:"\u4E1A\u52A1\u5355\u53F7",prop:"code"}),a(e(s),{label:"\u9519\u8BEF\u539F\u56E0",prop:"msg"})]),_:1},8,["data"])]),_:1},8,["modelValue","title"]))}});var g=E(_,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/components/ErrorDialog/index.vue"]]);export{g as E};

+ 0 - 0
dist/assets/index.83741553.js → dist/assets/index.d03c87b5.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.d6108c.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.ddd736.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.e3af7c.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.eb8252.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.ef38b5.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.f97f53.js


+ 1 - 0
dist/assets/index.fac28d39.js

@@ -0,0 +1 @@
+import{d as F,a$ as B,o as r,G as s,C as a,h as o,j as i,l as u,aM as m,c as p,F as d,D as b,aN as C,ah as c,b0 as v,_ as x}from"./index.js";const y=F({__name:"index",props:{visible:{type:Boolean,required:!0},importColumns:{type:Array,required:!0},columns:{type:Array,required:!0}},setup(f){const t=B(f,"visible");return(n,l)=>(r(),s(u(v),{modelValue:u(t),"onUpdate:modelValue":l[0]||(l[0]=e=>c(t)?t.value=e:null),title:"\u5BFC\u5165\u6A21\u677F\u4E0D\u4E00\u81F4",center:""},{default:a(()=>[l[1]||(l[1]=o("p",null,"\u5BFC\u5165\u6A21\u677F:",-1)),i(u(m),{size:"small",border:""},{default:a(()=>[(r(!0),p(d,null,b(n.columns,e=>(r(),s(u(C),{label:e,"min-width":20+e.length*15+"px"},null,8,["label","min-width"]))),256))]),_:1}),l[2]||(l[2]=o("p",null,"\u5F53\u524D\u5BFC\u5165\u6A21\u677F:",-1)),i(u(m),{size:"small",border:""},{default:a(()=>[(r(!0),p(d,null,b(n.importColumns,e=>(r(),s(u(C),{label:e,"min-width":20+e.length*15+"px"},null,8,["label","min-width"]))),256))]),_:1})]),_:1},8,["modelValue"]))}});var _=x(y,[["__file","C:/Users/89793/Desktop/projects/ticket-system/src/components/importTableColumn/index.vue"]]);export{_ as I};

File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.ff51ce.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/index.js


+ 0 - 0
dist/assets/motion.f3ff9ec3.js → dist/assets/motion.76ecb273.js


File diff ditekan karena terlalu besar
+ 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,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.f3ff9ec3.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.76ecb273.js";/*!
  * is-plain-object <https://github.com/jonschlinkert/is-plain-object>
  *
  * Copyright (c) 2014-2017, Jon Schlinkert.

File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/regist.bfca82.js


+ 0 - 0
dist/assets/rule.8bbcb2df.js → dist/assets/rule.72e5441a.js


+ 0 - 0
dist/assets/tootip.b2737797.js → dist/assets/tootip.14850d7b.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/assets/update.2f876b.js


+ 0 - 0
dist/assets/use-page-search.d2caaa5e.js → dist/assets/use-page-search.132f00c2.js


+ 0 - 0
dist/assets/useDetail.a97445a4.js → dist/assets/useDetail.6849c189.js


+ 0 - 0
dist/assets/verifyCode.3d773a5f.js → dist/assets/verifyCode.3f42e487.js


+ 18 - 0
src/components/ErrorDialog/index.vue

@@ -0,0 +1,18 @@
+<script setup lang="ts">
+import { useVModel } from '@vueuse/core';
+import { ElDialog, ElTable, ElTableColumn } from 'element-plus';
+
+const props = defineProps<{ visible: boolean; list: any[]; title: string }>()
+
+
+const visible = useVModel(props, 'visible')
+</script>
+
+<template>
+    <ElDialog v-model="visible" :title="title" :append-to-body="true" center>
+        <ElTable :data="list" border size="small">
+            <ElTableColumn label="业务单号" prop="code" />
+            <ElTableColumn label="错误原因" prop="msg" />
+        </ElTable>
+    </ElDialog>
+</template>

+ 22 - 0
src/components/importTableColumn/index.vue

@@ -0,0 +1,22 @@
+<script setup lang="ts">
+import { useVModel } from '@vueuse/core';
+import { ElDialog, ElTable, ElTableColumn } from 'element-plus';
+
+const props = defineProps<{ visible: boolean; importColumns: any[]; columns: any[] }>()
+
+const visible = useVModel(props, 'visible')
+</script>
+
+<template>
+    <ElDialog v-model="visible" title="导入模板不一致" center>
+        <p>导入模板:</p>
+        <ElTable size="small" border>
+            <ElTableColumn v-for="column in columns" :label="column" :min-width="20 + (column.length * 15) + 'px'" />
+        </ElTable>
+
+        <p>当前导入模板:</p>
+        <ElTable size="small" border>
+            <ElTableColumn v-for="column in importColumns" :label="column" :min-width="20 + (column.length * 15) + 'px'" />
+        </ElTable>
+    </ElDialog>
+</template>

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

@@ -3,8 +3,8 @@ import { useRenderIcon } from '/@/components/ReIcon/src/hooks';
 import ChooseOrderModal from "./../ChooseOrderModal/index.vue"
 import { statusOptions, typeOptions } from '../../config/shared';
 import { ElButton, ElForm, ElMessage, ElTooltip } from 'element-plus';
-import { useTypeOptions } from '/@/utils/status';
-import { computed, reactive, ref } from 'vue';
+import { cg_order_type_options, useTypeOptions } from '/@/utils/status';
+import { computed, reactive, ref, watch } from 'vue';
 
 import ChooseGoodModal from "./../ChooseGoodModal/index.vue"
 import ChildGoodEditModal from "./../ChildGoodEditModal.vue";
@@ -14,6 +14,7 @@ import { useTask } from '/@/hooks/core';
 import { httpAdd } from "/@/api/invoiceInOut/clientC"
 import { useRouter } from 'vue-router';
 import { addition } from '/@/utils/calc';
+import { basicStatusOptions } from '../../../productManager/config/columns';
 
 const state = reactive({ 
     orderVisible: false, 
@@ -23,6 +24,11 @@ const state = reactive({
     index: -1
 })
 
+const searchParameter = computed(() => {
+    return { status: '1', good_type: String(formData.value.orders[0]?.goodType), good_source: String(formData.value.orders[0]?.source) }
+})
+
+
 const router = useRouter()
 const formData = ref({ orders: [], goods: [], month: '' })
 
@@ -40,6 +46,15 @@ const numSet = computed(() => {
     }
 })
 
+function handleAdd(){
+    if(formData.value.orders.length == 0){
+        ElMessage.warning('请选择至少一个订单')
+        return
+    }
+
+    state.goodvisible = true
+}
+
 function getSpanNumber(data, prop) {
     let length = Array.isArray(data) ? data.length : 0;
     if (length > 0) {
@@ -167,6 +182,15 @@ const rules = {
     goods: [{ required: true, message: '请选择操作商品', trigger: 'change' }],
     month: [{ required: true, message: '请选择入账月份', trigger: 'change' }]
 }
+
+watch(() => formData.value.orders, () => {
+    console.log(formData.value.orders)
+    
+    if(formData.value.orders.length !== 0) return
+    formData.value.goods = []
+}, {
+    deep: true
+})
 </script>
 
 <template>
@@ -206,6 +230,23 @@ const rules = {
                 <ElTableColumn label="客户公司" prop="buyer_name" show-overflow-tooltip />
                 <ElTableColumn label="商品编码" prop="goodNo" width="160px" show-overflow-tooltip />
                 <ElTableColumn label="商品名称" prop="goodName" width="160px" show-overflow-tooltip />
+
+                <ElTableColumn label="商品类型" prop="goodName" width="95px" show-overflow-tooltip>
+                    <template #="{ row }">
+                        <el-tag>
+                            {{ cg_order_type_options.find(item => item.value == row.goodType)?.label || '--' }}
+                        </el-tag>
+                    </template>
+                </ElTableColumn>
+
+                <ElTableColumn label="商品来源" prop="goodName" width="95px" show-overflow-tooltip>
+                    <template #="{ row }">
+                        <el-tag>
+                            {{ basicStatusOptions.find(item => item.value == row.source)?.label || '--' }}
+                        </el-tag>
+                    </template>
+                </ElTableColumn>
+
                 <ElTableColumn label="下单数量" prop="balance_num" show-overflow-tooltip />
                 <ElTableColumn label="销售单价" prop="goodPrice" show-overflow-tooltip />
                 <ElTableColumn label="销售合计" prop="totalPrice" show-overflow-tooltip />
@@ -258,7 +299,7 @@ const rules = {
                             <span>操作</span>
                             <ElTooltip content="添加" placement="top">
                                 <ElButton link size="small" type="primary" :icon="useRenderIcon('add')"
-                                    @click="state.goodvisible = true" />
+                                    @click="handleAdd" />
                             </ElTooltip>
                         </div>
                     </template>
@@ -287,9 +328,10 @@ const rules = {
             <ElButton type="primary" @click="submitForm">保存</ElButton>
         </div>
 
-        <ChooseOrderModal v-model:visible="state.orderVisible" @submit="handleOrderSubmit" />
+        <ChooseOrderModal v-model:visible="state.orderVisible" @submit="handleOrderSubmit"
+            :goodType="formData.orders[0]?.goodType" :source="formData.orders[0]?.source" />
 
-        <ChooseGoodModal v-model:visible="state.goodvisible" @submit="handleGoodComfirm" />
+        <ChooseGoodModal v-model:visible="state.goodvisible" @submit="handleGoodComfirm"  :other-search-parameter="searchParameter" />
 
         <ChildGoodEditModal :data="state.data" :index="state.index" v-model:visible="state.editVisible"
             @submit="handleEditGood" />

+ 3 - 4
src/views/invoiceInOut/clientC/components/ChooseGoodModal/config/search.config.ts

@@ -20,28 +20,27 @@ const searchFormConfig: FormConfig = {
       type: 'select',
       options: goodTypeOptions,
       placeholder: '商品类型',
-      // otherOptions: { disabled: true }
+      otherOptions: { disabled: true }
     },
     {
       type: 'select',
       placeholder: '成本类型',
       field: 'basic_status',
       options: basicStatusOptions,
-      // otherOptions: { disabled: true }
     },
     {
       type: 'select',
       placeholder: '商品来源',
       field: 'good_source',
       options: goodSourceOptions,
-      // otherOptions: { disabled: true }
+      otherOptions: { disabled: true }
     },
     {
       field: 'status',
       type: 'select',
       options: statusList,
       placeholder: '状态',
-      // otherOptions: { disabled: true }
+      otherOptions: { disabled: true }
     },
     {
       type: 'input',

+ 3 - 4
src/views/invoiceInOut/clientC/components/ChooseGoodModal/index.vue

@@ -8,10 +8,9 @@ import { useRouter } from "vue-router";
 import { ref } from "vue";
 
 const props = defineProps<{
-  visible: boolean;
   otherSearchParameter: any;
+  visible: boolean;
   skuCode?: string
-  isJT: boolean
 }>()
 
 const emit = defineEmits(['submit'])
@@ -70,7 +69,7 @@ function handleSubmit() {
       single.ProductsCombind.forEach(child => {
         result.push({
           ...single,
-          isJT: props.isJT,
+          isJT: '',
           goodNum: '',
           childCode: child.products.skuCode,
           childNum: child.child_num,
@@ -86,7 +85,7 @@ function handleSubmit() {
 </script>
 
 <template>
-  <ElDialog class="relative" v-model="visible" :title="isJT ? '添加计提商品' : '选择商品'" center top="10px">
+  <ElDialog class="relative" v-model="visible" :title="'选择商品'" center top="10px">
     <PageContainer :only-self="true" v-if="visible" :hooks="hooks" :events="events" :searchConfig="searchConfig"
       :contentConfig="contentConfig" :isPageStart="true" :other-search-parameter="otherSearchParameter"
       @content-select-change="values => selection = values.map(item => ({ ...item, child_num: '1', child_id: item.id }))" />

+ 21 - 2
src/views/invoiceInOut/clientC/components/ChooseOrderModal/config/content.config.ts

@@ -3,8 +3,9 @@ import { httpList } from "/@/api/invoiceInOut/clientC";
 import { statusOptions, typeOptions } from "./shared";
 import { h } from "vue";
 import { ElTag } from "element-plus";
-import { useTypeOptions } from "/@/utils/status";
+import { cg_order_type_options, useTypeOptions } from "/@/utils/status";
 import { renderIconLabelLeft } from "/@/utils/columnRenderHelper";
+import { basicStatusOptions } from "/@/views/invoiceInOut/productManager/config/columns";
 
 const columns = [
   {
@@ -81,7 +82,24 @@ const columns = [
     width: 160,
     ...renderIconLabelLeft('goodNo', 'goodName', '商品编号:')
   },
-
+  {
+    label: '商品类型',
+    width: 95,
+    cellRenderer({ row }) {
+      return h(ElTag, { size: 'small' }, {
+        default: () => cg_order_type_options.find(item => item.value == row.goodType)?.label || '--'
+      })
+    }
+  },
+  {
+    label: '商品来源',
+    width: 95,
+    cellRenderer({ row }) {
+      return h(ElTag, { size: 'small' }, {
+        default: () => basicStatusOptions.find(item => item.value == row.source)?.label || '--'
+      })
+    }
+  },
   {
     label: '数量',
     prop: 'balance_num',
@@ -116,6 +134,7 @@ const columns = [
 const contentConfig: ContentConfig = {
   columns,
   permissions: ['007'],
+  companyProp: 'buyer_code',
   apis: {
     httpList: (parameter = {}) => httpList({ ...parameter, channel: '3', status: '1' }),
     httpAdd: true

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

@@ -7,7 +7,7 @@ import { useVModel } from "@vueuse/core";
 import { useRouter } from "vue-router";
 import { ref } from "vue";
 
-const props = defineProps<{ visible: boolean }>()
+const props = defineProps<{ visible: boolean; goodType?: string; source?: string }>()
 const emit = defineEmits(['submit'])
 
 const visible = useVModel(props, 'visible')
@@ -38,6 +38,20 @@ function handleSubmit(){
     return
   }
 
+  const types = [...new Set(selection.value.map(({ goodType }) => goodType))]
+  const sources = [...new Set(selection.value.map(({ source }) => source))]
+
+  if (types.length !== 1 || sources.length !== 1) {
+    ElMessage.warning('选择订单的商品类型和商品来源必须一致')
+    return
+  }
+
+  if(props.goodType){
+    selection.value.some(item => item.goodType !== props.goodType || item.source !== props.source)
+    ElMessage.warning('选择的订单商品类型和商品来源与已选择的订单不一致')
+    return
+  }
+
   visible.value = false
    emit('submit', selection.value)
 }

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

@@ -135,19 +135,19 @@ const columns = [
     minWidth: '100px',
     required: true,
     defaultData: ''
-  },
-  {
-    label: '子商品编号',
-    minWidth: '100px',
-    prop: 'childGoodNo',
-    defaultData: ''
-  },
-  {
-    label: '子商品数量',
-    minWidth: '100px',
-    prop: 'childGoodNo',
-    defaultData: ''
   }
+  // {
+  //   label: '子商品编号',
+  //   minWidth: '100px',
+  //   prop: 'childGoodNo',
+  //   defaultData: ''
+  // },
+  // {
+  //   label: '子商品数量',
+  //   minWidth: '100px',
+  //   prop: 'childGoodNo',
+  //   defaultData: ''
+  // }
 ]
 
 const notOrderTemplate = [columns.slice(1).reduce((prev, current) => {

+ 35 - 42
src/views/invoiceInOut/clientC/components/NotOrderImportModal/index.vue

@@ -5,18 +5,25 @@ import { httpAdd } from "/@/api/invoiceInOut/inOutManager";
 import { ElButton, ElDialog, ElMessage } from "element-plus";
 import { execlUpload } from "/@/components/execlUpload";
 import { mapLabelToType } from "../../config/shared";
-import { mapGoodLabelToType, mapLabelToInvtype } from "/@/utils/status";
+import { mapGoodLabelToType } from "/@/utils/status";
 import { isImportDataValid } from "./validator";
 import { useResponseHandle } from "/@/hooks";
 import { useVModel } from "@vueuse/core";
 
 
+import ErrorDialog from "/@/components/ErrorDialog/index.vue"
+import ImportTableColumn from "/@/components/importTableColumn/index.vue"
+
+
 const props = defineProps<{ visible: boolean }>()
 const emit = defineEmits(["refresh"]);
 
 const tableData = ref([]);
 const loading = ref(false);
 
+const errorState = ref({ visible: false, list: [] })
+const headerState = ref({ visible: false, importColumns: [], columns: [] })
+
 const visible = useVModel(props, 'visible')
 const responseHandle = useResponseHandle();
 
@@ -44,7 +51,9 @@ const Uploadsuccess = ({ results, header }) => {
   }
 
   if (!headok) {
-    ElMessage.error("表头与导入模板不匹配!");
+    headerState.value.visible = true
+    headerState.value.importColumns = [...header]
+    headerState.value.columns = columns.slice(1).map(({ label }) => label)
     loading.value = false;
     return;
   }
@@ -112,12 +121,17 @@ const handleSubmit = async () => {
 
     const { code, message, data: _d } = await httpAdd({ list });
 
+    if(code == 1004){
+      errorState.value.visible = true
+      errorState.value.list = _d
+    }
+
     loading.value = false;
 
     responseHandle({
       code,
       message,
-      noMessage: false,
+      noMessage: true,
       handler: () => {
         ElMessage.success("数据导入成功!");
         emit("refresh");
@@ -134,38 +148,17 @@ const cancel = () => {
 </script>
 
 <template>
-  <ElDialog
-    v-model="visible"
-    :close-on-click-modal="false"
-    title="非订单商品(C端无发票出库)"
-    width="1040px"
-    top="8vh"
-    center
-  >
+  <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"
-      >
+    <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 }}
@@ -173,21 +166,21 @@ const cancel = () => {
         </template>
       </el-table-column>
     </el-table>
-    <div
-      flex
-      justify-end
-      gap-2
-      v-if="tableData.length !== 0"
-      style="padding: 10px 0 0 0"
-    >
+    <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>
+      <ElButton size="small" type="primary" :loading="loading" @click="handleSubmit">保存</ElButton>
     </div>
+
+    <ErrorDialog 
+      v-model:visible="errorState.visible" 
+      :list="errorState.list" 
+      :title="'数据校验不通过'" 
+    />
+
+    <ImportTableColumn 
+      v-model:visible="headerState.visible" 
+      :import-columns="headerState.importColumns"
+      :columns="headerState.columns" />
   </ElDialog>
 </template>
 

+ 39 - 43
src/views/invoiceInOut/clientC/components/OrderImportModal/index.vue

@@ -5,11 +5,13 @@ import { httpAdd } from "/@/api/invoiceInOut/inOutManager";
 import { ElButton, ElDialog, ElMessage } from "element-plus";
 import { execlUpload } from "/@/components/execlUpload";
 import { mapLabelToType } from "../../config/shared";
-import { mapGoodLabelToType, mapLabelToInvtype } from "/@/utils/status";
+import { mapGoodLabelToType } from "/@/utils/status";
 import { isImportDataValid } from "./validator";
 import { useResponseHandle } from "/@/hooks";
 import { useVModel } from "@vueuse/core";
 
+import ErrorDialog from "/@/components/ErrorDialog/index.vue"
+import ImportTableColumn from "/@/components/importTableColumn/index.vue"
 
 const props = defineProps<{ visible: boolean }>()
 const emit = defineEmits(["refresh"]);
@@ -18,8 +20,14 @@ const tableData = ref([]);
 const loading = ref(false);
 
 const visible = useVModel(props, 'visible')
+const headerState = ref({ visible: false, importColumns: [], columns: [] })
 const responseHandle = useResponseHandle();
 
+const errorState = ref({
+  visible: false,
+  list: []
+})
+
 const Uploadsuccess = ({ results, header }) => {
   loading.value = true;
   if (results.length === 0) {
@@ -30,7 +38,7 @@ const Uploadsuccess = ({ results, header }) => {
 
   let headok = true;
   console.log(header)
-  
+
   if (header.length !== columns.length - 1) {
     headok = false;
   } else {
@@ -43,7 +51,9 @@ const Uploadsuccess = ({ results, header }) => {
   }
 
   if (!headok) {
-    ElMessage.error("表头与导入模板不匹配!");
+    headerState.value.visible = true
+    headerState.value.importColumns = [...header]
+    headerState.value.columns = columns.slice(1).map(({ label }) => label)
     loading.value = false;
     return;
   }
@@ -110,6 +120,12 @@ const handleSubmit = async () => {
 
     const { code, message, data: _d } = await httpAdd({ list });
 
+    if (code == 1004) {
+      errorState.value.visible = true
+      errorState.value.list = _d
+    }
+
+
     loading.value = false;
 
     responseHandle({
@@ -132,39 +148,18 @@ const cancel = () => {
 </script>
 
 <template>
-  <ElDialog
-    v-model="visible"
-    :close-on-click-modal="false"
-    title="订单商品(C端无发票出库)"
-    width="1040px"
-    top="8vh"
-    center
-    @close="tableData = []"
-  >
+  <ElDialog v-model="visible" :close-on-click-modal="false" title="订单商品(C端无发票出库)" width="1040px" top="8vh" center
+    @close="tableData = []">
     <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"
-      >
+    <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 }}
@@ -172,21 +167,22 @@ const cancel = () => {
         </template>
       </el-table-column>
     </el-table>
-    <div
-      flex
-      justify-end
-      gap-2
-      v-if="tableData.length !== 0"
-      style="padding: 10px 0 0 0"
-    >
+    <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>
+      <ElButton size="small" type="primary" :loading="loading" @click="handleSubmit">保存</ElButton>
     </div>
+
+    <ErrorDialog 
+      v-model:visible="errorState.visible" 
+      :list="errorState.list" 
+      :title="'数据校验不通过'" 
+    />
+    
+    <ImportTableColumn 
+      v-model:visible="headerState.visible" 
+      :import-columns="headerState.importColumns"
+      :columns="headerState.columns" 
+    />
   </ElDialog>
 </template>
 

+ 34 - 29
src/views/invoiceInOut/clientC/detail.vue

@@ -25,6 +25,10 @@ const productDetailTask = useTask()
 
 const state = reactive({ editVisible: false, index: -1, data: {} });
 
+const searchParameter = computed(() => {
+  return { status: '1' }
+})
+
 const formData = ref({ goods: [], month: "" });
 
 
@@ -62,35 +66,36 @@ id.value && detailTask.run(httpDetail({ id: id.value }));
 
 <template>
   <div class="padding__container" v-loading="detailTask.loading">
-      <ElCollapse v-model="collapses">
-        <ElCollapseItem :title="title" name="1">
-            <BasicDescriptions v-if="isDetail && detailTask.data" :columns="orderGoodColumns(() => {})" :data="detailTask.data" />
-            <BaseForm v-else />
-        </ElCollapseItem>
-
-        <ElCollapseItem title="商品信息" name="2" v-if="detailTask.data && detailTask.data.status != '1'">
-          <ElTable size="small" border :data="detailTask.data.ProductRela">
-            <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="create_time" show-overflow-tooltip />
-            <ElTableColumn label="操作" width="100px">
-              <template #="scope">
-                <ElTooltip content="查看详情">
-                  <ElButton type="primary" link :icon="useRenderIcon('eye-view')"
-                    @click="handleShowDetail(scope.row.product_id, scope.$index)" />
-                </ElTooltip>
-              </template>
-            </ElTableColumn>
-          </ElTable>
-        </ElCollapseItem>
-      </ElCollapse>
-
-    <ChooseGoodModal v-model:visible="visible" @submit="handleGoodComfirm" />
-
-    <ChildGoodEditModal v-model:visible="state.editVisible" :data="state.data" :index="state.index"
-      @submit="handleEditGood" />
+    <ElCollapse v-model="collapses">
+      <ElCollapseItem :title="title" name="1">
+        <BasicDescriptions v-if="isDetail && detailTask.data" :columns="orderGoodColumns(() => {})"
+          :data="detailTask.data" />
+        <BaseForm v-else />
+      </ElCollapseItem>
+
+      <ElCollapseItem title="商品信息" name="2" v-if="detailTask.data && detailTask.data.status != '1'">
+        <ElTable size="small" border :data="detailTask.data.ProductRela">
+          <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="create_time" show-overflow-tooltip />
+          <ElTableColumn label="操作" width="100px">
+            <template #="scope">
+              <ElTooltip content="查看详情">
+                <ElButton type="primary" link :icon="useRenderIcon('eye-view')"
+                  @click="handleShowDetail(scope.row.product_id, scope.$index)" />
+              </ElTooltip>
+            </template>
+          </ElTableColumn>
+        </ElTable>
+      </ElCollapseItem>
+    </ElCollapse>
+
+    <ChooseGoodModal :otherSearchParameter="searchParameter" v-model:visible="visible" @submit="handleGoodComfirm" />
+
+    <ChildGoodEditModal v-model:visible="state.editVisible" @submit="handleEditGood" :index="state.index"
+      :data="state.data" />
 
     <ElDialog center title="商品详情" v-model="productVisible" style="overflow: hidden">
       <div v-loading="productDetailTask.loading">

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini