columns.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486
  1. import CONFIG from "@/config";
  2. import { iunitprice } from "@/utils/expression";
  3. export default function useColumns() {
  4. const TableColumns = [
  5. {
  6. item: { key: "priceCode", title: "价格编码" },
  7. attr: { is: "el-input", disabled: true, readonly: true },
  8. },
  9. {
  10. item: { key: "supplierName", title: "供应商", required: true },
  11. attr: {
  12. is: "el-popover-select-v2",
  13. valueKey: "name",
  14. referName: "SUPPLIER_PARAM",
  15. dataMapping: {
  16. supplier: "id",
  17. supplierCode: "code",
  18. supplierName: "name",
  19. },
  20. },
  21. },
  22. {
  23. item: { key: "puOrgName", title: "采购组织", required: true },
  24. attr: {
  25. is: "el-popover-select-v2",
  26. valueKey: "name",
  27. referName: "ORG_PARAM",
  28. dataMapping: { puOrg: "id", puOrgCode: "code", puOrgName: "name" },
  29. },
  30. },
  31. {
  32. item: { key: "currencyName", title: "币种", required: true },
  33. attr: {
  34. is: "el-popover-select-v2",
  35. valueKey: "name",
  36. referName: "CURRENCY_PARAM",
  37. dataMapping: {
  38. currency: "id",
  39. currencyCode: "code",
  40. currencyName: "name",
  41. },
  42. },
  43. },
  44. {
  45. item: { key: "explainStr", title: "价格合理性说明", required: true },
  46. attr: { is: "el-input" },
  47. },
  48. {
  49. item: { key: "buyerName", title: "采购员", required: true },
  50. attr: {
  51. is: "el-popover-select-v2",
  52. valueKey: "name",
  53. referName: "CONTACTS_PARAM",
  54. dataMapping: { buyer: "code", buyerName: "name" },
  55. },
  56. },
  57. {
  58. item: { key: "puDeptName", title: "采购部门", required: true },
  59. attr: {
  60. is: "el-popover-select-v2",
  61. valueKey: "name",
  62. referName: "DEPT_PARAM",
  63. dataMapping: { puDept: "id", puDeptCode: "code", puDeptName: "name" },
  64. },
  65. },
  66. {
  67. item: { key: "createByName", title: "创建人" },
  68. attr: { is: "el-input", disabled: true, readonly: true },
  69. },
  70. {
  71. item: { key: "isEffective", title: "是否已推价格" },
  72. attr: {
  73. is: "el-select",
  74. dictName: "is_effective",
  75. value: "N",
  76. disabled: true,
  77. },
  78. },
  79. {
  80. item: { key: "approveTime", title: "单据申请日期" },
  81. attr: { is: "el-input", disabled: true, readonly: true },
  82. },
  83. {
  84. item: { key: "sourceType", title: "来源单据类型" },
  85. attr: { is: "el-input", disabled: true, readonly: true },
  86. },
  87. {
  88. item: { key: "status", title: "单据状态" },
  89. attr: {
  90. is: "el-select",
  91. dictName: "sys_status",
  92. disabled: true,
  93. readonly: true,
  94. value: "0",
  95. },
  96. },
  97. {
  98. item: { key: "file", title: "附件", span: 24 },
  99. attr: { is: "el-file-upload" },
  100. },
  101. ].map(({ item, attr }) => ({
  102. attr,
  103. item: { ...item, hidden: true, span: item.span || 6 },
  104. }));
  105. const TabColumns = [
  106. {
  107. item: {
  108. title: "物料信息表",
  109. key: "priceApplyItems",
  110. },
  111. attr: {
  112. value: [],
  113. },
  114. TableColumns: [
  115. {
  116. item: { key: "materialCode", title: "物料编码", required: true },
  117. attr: {
  118. is: "el-input",
  119. clearable: true,
  120. },
  121. },
  122. {
  123. item: { key: "materialName", title: "物料名称", required: true },
  124. attr: {
  125. is: "el-popover-select-v2",
  126. checkbox: true,
  127. clearable: true,
  128. valueKey: "name",
  129. referName: "MATERIAL_PARAM",
  130. dataMapping: {
  131. model: "model",
  132. material: "id",
  133. materialCode: "code",
  134. materialName: "name",
  135. unitName: "unitIdName",
  136. puUnitName: "unitIdName",
  137. specification: "specification",
  138. manufacturer: "manufacturerId",
  139. manufacturerName: "manufacturerIdName",
  140. tax: "materialRateName",
  141. },
  142. },
  143. },
  144. { item: { key: "specification", title: "规格" }, attr: {} },
  145. { item: { key: "model", title: "型号" }, attr: {} },
  146. { item: { key: "manufacturerName", title: "生产厂家" }, attr: {} },
  147. {
  148. item: { key: "unitName", title: "单位" },
  149. attr: {
  150. is: "el-popover-select-v2",
  151. valueKey: "name",
  152. referName: "UNIT_PARAM",
  153. dataMapping: { unit: "id", unitCode: "code", unitName: "name" },
  154. },
  155. },
  156. // {
  157. // item: { key: "puUnitName", title: "采购单位", hidden: false },
  158. // attr: {
  159. // is: "el-popover-select-v2",
  160. // valueKey: "name",
  161. // referName: "UNIT_PARAM",
  162. // dataMapping: {
  163. // puUnit: "id",
  164. // puUnitCode: "code",
  165. // puUnitName: "name",
  166. // },
  167. // },
  168. // },
  169. {
  170. item: { key: "customerName", title: "客户" },
  171. attr: {
  172. is: "el-popover-select-v2",
  173. valueKey: "name",
  174. referName: "CUSTOMER_PARAM",
  175. dataMapping: {
  176. customer: "id",
  177. customerCode: "code",
  178. customerName: "name",
  179. },
  180. },
  181. },
  182. {
  183. item: { key: "taxPrice", title: "含税单价", required: true },
  184. attr: {
  185. is: "el-input-number",
  186. min: 0.00000001,
  187. },
  188. },
  189. {
  190. item: { key: "tax", title: "税率%", required: true },
  191. attr: {
  192. is: "el-popover-select-v2",
  193. valueKey: "ntaxrate",
  194. referName: "TAX_RATE_PARAM",
  195. dataMapping: { tax: "ntaxrate" },
  196. disabled: true,
  197. },
  198. },
  199. {
  200. item: { key: "price", title: "无税单价", required: true },
  201. attr: {
  202. // formatter: (prop) => {
  203. // const { tax = 0, taxPrice = 0 } = prop;
  204. // return (prop.price = iunitprice(tax, taxPrice));
  205. // },
  206. },
  207. },
  208. // {
  209. // item: { key: "currencyName", title: "币种" },
  210. // attr: {
  211. // is: "el-popover-select-v2",
  212. // valueKey: "name",
  213. // referName: "CURRENCY_PARAM",
  214. // dataMapping: {
  215. // currency: "id",
  216. // currencyCode: "code",
  217. // currencyName: "name",
  218. // },
  219. // },
  220. // },
  221. {
  222. item: {
  223. key: "periodBegin",
  224. title: "价格有效期(起)",
  225. required: true,
  226. },
  227. attr: {
  228. is: "el-date-picker",
  229. valueFormat: "yyyy-MM-dd",
  230. value: new Date(),
  231. },
  232. },
  233. {
  234. item: { key: "periodEnd", title: "价格有效期(止)", required: true },
  235. attr: {
  236. is: "el-date-picker",
  237. valueFormat: "yyyy-MM-dd",
  238. pickerOptions: {
  239. disabledDate(time) {
  240. return time.getTime() < Date.now() + 3600 * 1000 * 24 * 365;
  241. },
  242. },
  243. value: new Date(new Date().getTime() + 3600 * 1000 * 24 * 366),
  244. },
  245. },
  246. {
  247. item: { key: "recentlyPrice", title: "最近价格" },
  248. attr: {
  249. is: "el-input-number",
  250. min: 0,
  251. precision: CONFIG.precision,
  252. disabled: true,
  253. },
  254. },
  255. {
  256. item: {
  257. key: "recentlyPriceDate",
  258. title: "最近价格日期",
  259. },
  260. attr: {
  261. is: "el-date-picker",
  262. valueFormat: "yyyy-MM-dd",
  263. },
  264. },
  265. {
  266. item: { key: "isApprovalFirst", title: "首次报批" },
  267. attr: {
  268. is: "el-select",
  269. dictName: "is_effective",
  270. disabled: true,
  271. },
  272. },
  273. {
  274. item: { key: "isPriceAdjustment", title: "调价类型" },
  275. attr: {
  276. value: 'no',
  277. is: "el-select",
  278. dictName: "price_adjustment_type",
  279. disabled: true,
  280. // value: '无',
  281. // formatter: (prop) => {
  282. // const { priceDiffer } = prop;
  283. // return (prop.isPriceAdjustment = priceDiffer > 0 ? '涨价' : priceDiffer < 0 ? '降价' : '无');
  284. // },
  285. },
  286. },
  287. {
  288. item: { width: 100, key: "priceDiffer", title: "单价差" },
  289. attr: {
  290. // formatter: (prop) => {
  291. // const { taxPrice = 0, recentlyPrice = 0 } = prop;
  292. // return (prop.priceDiffer = Number(recentlyPrice) !== 0 ? Number(taxPrice) - Number(recentlyPrice) : 0);
  293. // },
  294. },
  295. },
  296. {
  297. item: { width: 100, key: "increase", title: "涨幅(%)" },
  298. attr: {
  299. // formatter: (prop) => {
  300. // const { priceDiffer = 0, recentlyPrice = 0 } = prop;
  301. // return (prop.increase = recentlyPrice ? ((Number(priceDiffer) / Number(recentlyPrice)) * 100).toFixed(1) : 0);
  302. // },
  303. },
  304. },
  305. {
  306. item: { width: 100, key: "yPurchaseQuantity", title: "预计年采购量" },
  307. attr: {
  308. // is: "el-computed-input-v2",
  309. formatter: (prop) => {
  310. return prop.yPurchaseQuantity
  311. },
  312. },
  313. },
  314. {
  315. item: { width: 100, key: "yPurchaseVolume", title: "预计年采购额" },
  316. attr: {
  317. // formatter: (prop) => {
  318. // const { taxPrice = 0, yPurchaseQuantity = 0 } = prop;
  319. // return (prop.yPurchaseVolume = (Number(taxPrice) * Number(yPurchaseQuantity)).toFixed(2));
  320. // },
  321. },
  322. },
  323. {
  324. item: { width: 100, key: "yAffectedAmount", title: "预计年影响金额" },
  325. attr: {
  326. // formatter: (prop) => {
  327. // const { priceDiffer = 0, yPurchaseQuantity = 0 } = prop;
  328. // return (prop.yAffectedAmount =
  329. // Number(priceDiffer) * Number(yPurchaseQuantity));
  330. // },
  331. },
  332. },
  333. {
  334. item: { key: "priceType", title: "价格类型", required: true },
  335. attr: {
  336. is: "el-select",
  337. dictName: "sys_price_type",
  338. value: "order",
  339. },
  340. },
  341. {
  342. item: { key: "isDistributionPrice", title: "配送价", required: true },
  343. attr: {
  344. is: "el-select",
  345. dictName: "is_effective",
  346. value: "N",
  347. },
  348. },
  349. {
  350. item: { width: 100, key: "isChannel", title: "是否渠道变更" },
  351. attr: {
  352. is: "el-select",
  353. dictName: "is_effective",
  354. value: "N",
  355. },
  356. },
  357. {
  358. item: { width: 100, key: "brandReplacement", title: "是否品牌替换" },
  359. attr: {
  360. is: "el-select",
  361. dictName: "is_effective",
  362. value: "N",
  363. },
  364. },
  365. {
  366. item: { width: 150, key: "supplierName", title: "供应商名称1" },
  367. attr: { is: "el-input" },
  368. },
  369. {
  370. item: { width: 150, key: "bidPrice", title: "中标价1" },
  371. attr: {
  372. is: "el-input-number",
  373. min: 0,
  374. precision: CONFIG.precision,
  375. },
  376. },
  377. {
  378. item: { width: 150, key: "unitPrice", title: "单价1" },
  379. attr: {
  380. is: "el-input-number",
  381. min: 0,
  382. precision: CONFIG.precision,
  383. },
  384. },
  385. {
  386. item: { width: 150, key: "profit", title: "利润比1" },
  387. attr: {
  388. is: "el-input-number",
  389. min: 0,
  390. precision: CONFIG.precision,
  391. },
  392. },
  393. {
  394. item: { width: 150, key: "supplierName1", title: "供应商名称2" },
  395. attr: { is: "el-input" },
  396. },
  397. {
  398. item: { width: 150, key: "bidPrice1", title: "中标价2" },
  399. attr: {
  400. is: "el-input-number",
  401. min: 0,
  402. precision: CONFIG.precision,
  403. },
  404. },
  405. {
  406. item: { width: 150, key: "unitPrice1", title: "单价2" },
  407. attr: {
  408. is: "el-input-number",
  409. min: 0,
  410. precision: CONFIG.precision,
  411. },
  412. },
  413. {
  414. item: { width: 150, key: "profit1", title: "利润比2" },
  415. attr: {
  416. is: "el-input-number",
  417. min: 0,
  418. precision: CONFIG.precision,
  419. },
  420. },
  421. {
  422. item: { width: 150, key: "supplierName2", title: "供应商名称3" },
  423. attr: { is: "el-input" },
  424. },
  425. {
  426. item: { width: 150, key: "bidPrice2", title: "中标价3" },
  427. attr: {
  428. is: "el-input-number",
  429. min: 0,
  430. precision: CONFIG.precision,
  431. },
  432. },
  433. {
  434. item: { width: 150, key: "unitPrice2", title: "单价3" },
  435. attr: {
  436. is: "el-input-number",
  437. min: 0,
  438. precision: CONFIG.precision,
  439. },
  440. },
  441. {
  442. item: { width: 150, key: "profit2", title: "利润比3" },
  443. attr: {
  444. is: "el-input-number",
  445. min: 0,
  446. precision: CONFIG.precision,
  447. },
  448. },
  449. // { item: { key: "createByName", title: "创建人名称" }, attr: {} },
  450. // { item: { key: "updateByName", title: "更新人名称" }, attr: {} },
  451. // {
  452. // item: { key: "isPriceAdjustment", title: "", width: 10 },
  453. // attr: {
  454. // value: 'no',
  455. // // formatter: (prop) => {
  456. // // const { priceDiffer } = prop;
  457. // // return (prop.isPriceAdjustment = priceDiffer > 0 ? 'up' : priceDiffer < 0 ? 'down' : 'no');
  458. // // },
  459. // },
  460. // },
  461. // 采购换算率隐藏
  462. {
  463. item: { key: "conversionRate", title: "", required: true, width: 5 },
  464. attr: {
  465. is: "el-input-number",
  466. min: 0,
  467. precision: CONFIG.precision,
  468. value: 1,
  469. disabled: true,
  470. },
  471. },
  472. ],
  473. },
  474. ];
  475. return { TableColumns, TabColumns };
  476. }