addSaleOrder.vue 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363
  1. <template>
  2. <!-- 添加销售订单 -->
  3. <div class="addSalePlan">
  4. <page-title>钢材订单新增</page-title>
  5. <!-- 订单基础信息 -->
  6. <el-form :inline="true" style="margin-top: 1rem;box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04)">
  7. <el-form-item>
  8. <label class="el-form-item__label" style="width: auto;">发货单位</label>
  9. <el-autocomplete
  10. class="inline-input"
  11. v-model="shipperName"
  12. :fetch-suggestions="querySearchCarrier"
  13. placeholder="请输入发货单位名称"
  14. :trigger-on-focus="false"
  15. @select="handleSelectCarrier"
  16. style="width:245px"
  17. >
  18. <template slot-scope="{ item }">
  19. <div class="name">{{ item.shipperName }}</div>
  20. </template>
  21. </el-autocomplete>
  22. </el-form-item>
  23. <el-form-item>
  24. <label class="el-form-item__label" style="width: auto;">收货单位</label>
  25. <el-autocomplete
  26. class="inline-input"
  27. v-model="consigneeName"
  28. :fetch-suggestions="querySearchConsignee"
  29. placeholder="请输入收货单位名称"
  30. :trigger-on-focus="false"
  31. @select="handleSelectConsignee"
  32. >
  33. <template slot-scope="{ item }">
  34. <div class="name">{{ item.consigneeCompanyName }}</div>
  35. </template>
  36. </el-autocomplete>
  37. </el-form-item>
  38. <el-form-item>
  39. <label class="el-form-item__label" style="width: auto;">是否自提</label>
  40. <el-select v-model="values" placeholder="请选择" style="width:60px">
  41. <el-option v-for="item in options" :key="item.values" :label="item.label" :value="item.values">
  42. </el-option>
  43. </el-select>
  44. </el-form-item>
  45. <el-form-item>
  46. <label class="el-form-item__label" style="width: auto;">收款公司</label>
  47. <el-select v-model="values1" placeholder="请选择" style="width: 255px">
  48. <el-option v-for="item in receivingCompany" :key="item.values1" :label="item.label1" :value="item.values1">
  49. </el-option>
  50. </el-select>
  51. </el-form-item>
  52. <el-form-item>
  53. <label class="el-form-item__label" style="width: auto;">业务员</label>
  54. <el-select v-model="saleMan" placeholder="请选择" style="width: 90px">
  55. <el-option v-for="item in saleMans" :key="item.value" :label="item.label" :value="item.value">
  56. </el-option>
  57. </el-select>
  58. </el-form-item>
  59. <el-form-item>
  60. <label class="el-form-item__label" style="width: auto;margin-top: 0.3rem;">摘要</label>
  61. </el-form-item>
  62. <el-form-item>
  63. <el-input v-model="remarks" placeholder="(非必填)" style="width: 100px"></el-input>
  64. </el-form-item>
  65. </el-form>
  66. <!-- 车序号基础信息 -->
  67. <el-form :inline="true" style="margin-top: 1rem;">
  68. <el-form-item>
  69. <label class="el-form-item__label" style="width: auto;">收货地址</label>
  70. <el-input style="width: 400px" v-model="saleShipperAddressName" disabled>
  71. </el-input>
  72. <el-button type="primary" @click="ondrawerOut"
  73. >选择</el-button>
  74. </el-form-item>
  75. <el-form-item>
  76. <label class="el-form-item__label" style="width: auto;">可装货时间</label>
  77. <el-date-picker
  78. class="textinput3"
  79. v-model.number="saleDateOfReceipt"
  80. type="datetime"
  81. placeholder="选择日期时间"
  82. disabled>
  83. </el-date-picker>
  84. </el-form-item>
  85. <el-form-item>
  86. <label class="el-form-item__label" style="width: auto;margin-top: 0.4rem;">收货客户电话</label>
  87. </el-form-item>
  88. <el-form-item>
  89. <label class="el-form-item__label" style="width: auto;margin-top: 0.4rem;color:red">(注:不填无法收到发货短信)</label>
  90. </el-form-item>
  91. <el-form-item>
  92. <el-input style="width: 150px" v-model="saleOrderConsigneeTel" placeholder="(非必填)"></el-input>
  93. </el-form-item>
  94. </el-form>
  95. <div class="button-box">
  96. <el-button type="primary" class="btn" @click="addMaterial"><i class="el-icon-circle-plus-outline"></i>新增物资</el-button>
  97. </div>
  98. <!-- 车辆拼装物资信息table1 -->
  99. <div class="selectionTable from">
  100. <el-table
  101. :data="materialList"
  102. border
  103. style="width: 100%"
  104. highlight-current-row
  105. >
  106. <el-table-column
  107. v-for="(item, i) in materialTableTop"
  108. :key="i"
  109. :prop="item.prop"
  110. :label="item.label"
  111. align="center"
  112. show-overflow-tooltip
  113. >
  114. <!-- 插入输入框 -->
  115. <template slot-scope="scope">
  116. <template v-if="item.slot">
  117. <!-- 物资件数 -->
  118. <template v-if="item.prop == 'orderPlanWeight'">
  119. <el-input
  120. class="textinput111"
  121. v-model.number="scope.row.orderPlanWeight"
  122. placeholder="(必填)"
  123. ></el-input>
  124. </template>
  125. <!-- 米数 -->
  126. <template v-if="item.prop == 'meterNumber'">
  127. <el-input v-if="scope.row.haveMeter==1"
  128. class="textinput111"
  129. v-model.number="scope.row.meterNumber"
  130. placeholder="(必填)"
  131. ></el-input>
  132. </template>
  133. <!-- 分装车数 -->
  134. <template v-if="item.prop == 'carNumber'">
  135. <el-input v-if="materialList.length==1"
  136. class="textinput111"
  137. v-model.number="scope.row.carNumber"
  138. placeholder="(非必填)"
  139. ></el-input>
  140. </template>
  141. <!-- 是否磅重销售 -->
  142. <template v-if="item.prop == 'isPound'">
  143. <el-select v-model="scope.row.isPound" placeholder="请选择" style="width:65px">
  144. <el-option v-for="item in options2" :key="item.values2" :label="item.label2" :value="item.values2">
  145. </el-option>
  146. </el-select>
  147. </template>
  148. </template>
  149. <template v-else>
  150. <span>{{ scope.row[item.prop] }}</span>
  151. </template>
  152. </template>
  153. </el-table-column>
  154. <!-- 操作列 -->
  155. <el-table-column fixed="right" label="操作" width="100">
  156. <template slot-scope="scope">
  157. <el-button
  158. @click.native.prevent="deleteMaterialRow(scope.$index, materialList)"
  159. type="text"
  160. icon="el-icon-close"
  161. size="big"
  162. ></el-button>
  163. </template>
  164. </el-table-column>
  165. </el-table>
  166. </div>
  167. <!-- 新增物资和生成一车 -->
  168. <div class="button-box">
  169. <el-button type="primary" class="btn" @click="createACar">添加到订单</el-button>
  170. </div>
  171. <div style="margin-left: 0.3rem;color:red">(注:一个车序号代表一辆车)</div>
  172. <!-- 销售订单信息table2 -->
  173. <div class="selectionTable from">
  174. <el-table
  175. :data="selectionList"
  176. border
  177. style="width: 100%"
  178. :span-method="cellMerge"
  179. highlight-current-row
  180. >
  181. <el-table-column
  182. v-for="(item, i) in tableTop"
  183. :key="i"
  184. :prop="item.prop"
  185. :label="item.label"
  186. :width="item.width"
  187. align="center"
  188. show-overflow-tooltip
  189. >
  190. <template slot="scope" v-if="item.label !== '物资名称'">
  191. <span>{{ item.label }}</span>
  192. </template>
  193. <template slot="scope" v-if="item.label !== '件数'">
  194. <span>{{ item.label }}</span>
  195. </template>
  196. <template slot="scope" v-if="item.label !== '收货地址'">
  197. <span>{{ item.label }}</span>
  198. </template>
  199. <!-- <template slot="scope" v-if="item.label !== '收货日期'">
  200. <span>{{ item.label }}</span>
  201. </template> -->
  202. <template slot="scope" v-if="item.label !== '收货姓名'">
  203. <span>{{ item.label }}</span>
  204. </template>
  205. <template slot="scope" v-if="item.label !== '收货方电话'">
  206. <span>{{ item.label }}</span>
  207. </template>
  208. <!-- 插入输入框 -->
  209. <template slot-scope="scope">
  210. <template v-if="item.slot">
  211. <!-- 物资名称 -->
  212. <template v-if="item.prop == 'materialName'">
  213. <el-input style="width: 200px" v-model="scope.row.materialName" disabled>
  214. </el-input>
  215. <el-button type="primary" @click="changeMaterial(scope.$index)">更改</el-button>
  216. </template>
  217. <!-- 物资件数 -->
  218. <template v-if="item.prop == 'orderPlanWeight'">
  219. <el-input
  220. class="textinput"
  221. v-model.number="scope.row.orderPlanWeight"
  222. ></el-input>
  223. </template>
  224. <!-- 米数 -->
  225. <template v-if="item.prop == 'meterNumber'">
  226. <el-input v-if="scope.row.haveMeter==1"
  227. class="textinput"
  228. v-model.number="scope.row.meterNumber"
  229. ></el-input>
  230. </template>
  231. <!-- 是否磅重销售 -->
  232. <template v-if="item.prop == 'isPound'">
  233. <el-select v-model="scope.row.isPound" placeholder="请选择" style="width:65px">
  234. <el-option v-for="item in options2" :key="item.values2" :label="item.label2" :value="item.values2">
  235. </el-option>
  236. </el-select>
  237. </template>
  238. <!-- 收货地址id -->
  239. <template style="width: 380px" v-if="item.prop == 'saleShipperAddressName'">
  240. <el-input style="width: 310px" v-model="scope.row.saleShipperAddressName" disabled>
  241. </el-input>
  242. <el-button type="primary" @click="ondrawer(scope.row,scope.$index)"
  243. >选择</el-button
  244. >
  245. </template>
  246. <!-- 收货日期 -->
  247. <!-- <template v-if="item.prop == 'saleDateOfReceipt'">
  248. <el-date-picker
  249. class="textinput3"
  250. type="date"
  251. v-model.number="scope.row.saleDateOfReceipt"
  252. @change="batchUpdateValue(scope.row,scope.$index)"
  253. style="width:135px"
  254. ></el-date-picker>
  255. </template> -->
  256. <!-- 收货客户电话号码 -->
  257. <template v-if="item.prop == 'saleOrderConsigneeTel'">
  258. <el-input
  259. class="textinput5"
  260. placeholder="(必填)"
  261. v-model.number="scope.row.saleOrderConsigneeTel"
  262. @change="batchUpdateValue(scope.row,scope.$index)"
  263. ></el-input>
  264. </template>
  265. </template>
  266. <template v-else>
  267. <span>{{ scope.row[item.prop] }}</span>
  268. </template>
  269. </template>
  270. </el-table-column>
  271. <!-- 操作列 -->
  272. <el-table-column fixed="right" label="操作" width="100">
  273. <template slot-scope="scope">
  274. <el-button
  275. @click.native.prevent="deleteRow(scope.$index, selectionList)"
  276. type="text"
  277. icon="el-icon-close"
  278. size="big"
  279. ></el-button>
  280. </template>
  281. </el-table-column>
  282. </el-table>
  283. </div>
  284. <!-- 收货地址弹出框 -->
  285. <el-dialog title="收货地址" :visible.sync="drawer1" width="90%">
  286. <el-form :inline="true">
  287. <el-form-item>
  288. <label class="el-form-item__label" style="width: auto;">省</label>
  289. <el-select v-model="province" filterable placeholder="请选择" @change="onchangeProvince">
  290. <el-option v-for="item in provinceList" :key="item.id" :label="item.addressProvince" :value="item.id"></el-option>
  291. </el-select>
  292. </el-form-item>
  293. <el-form-item>
  294. <label class="el-form-item__label" style="width: auto;">市</label>
  295. <el-select v-model="city" filterable placeholder="请选择" @change="onchangeCity">
  296. <el-option v-for="item in cityList" :key="item.id" :label="item.addressDistrict" :value="item.id"></el-option>
  297. </el-select>
  298. </el-form-item>
  299. <el-form-item>
  300. <label class="el-form-item__label" style="width: auto;">县(区)</label>
  301. <el-select v-model="county" filterable placeholder="请选择" @change="onchangeCounty">
  302. <el-option v-for="item in countyList" :key="item.id" :label="item.addressTown" :value="item.id"></el-option>
  303. </el-select>
  304. </el-form-item>
  305. <el-form-item>
  306. <label class="el-form-item__label" style="width: auto;">具体收货地址</label>
  307. <el-autocomplete
  308. class="inline-input"
  309. v-model="place"
  310. :fetch-suggestions="querySearch1"
  311. placeholder="请输入具体收货地址"
  312. :trigger-on-focus="false"
  313. @select="handleSelect1"
  314. >
  315. </el-autocomplete>
  316. </el-form-item>
  317. </el-form>
  318. <div slot="footer" class="button-box">
  319. <el-button @click="drawer1 = false">取 消</el-button>
  320. <el-button type="primary" @click="addAddressClick">确定</el-button>
  321. </div>
  322. </el-dialog>
  323. <!-- 物资选择模态框 -->
  324. <el-drawer
  325. title="选择物资信息"
  326. :visible.sync="table1"
  327. direction="rtl"
  328. size="90%"
  329. :show-close="true"
  330. >
  331. <el-form :inline="true" style="margin-top: 0.5rem;">
  332. <el-form-item>
  333. <label class="el-form-item__label" style="width: auto;">物资名称</label>
  334. </el-form-item>
  335. <el-form-item>
  336. <el-input placeholder="请输入内容" v-model="materialNameText" clearable></el-input>
  337. </el-form-item>
  338. <el-form-item>
  339. <label class="el-form-item__label" style="width: auto;">规格</label>
  340. </el-form-item>
  341. <el-form-item>
  342. <el-input placeholder="请输入内容" v-model="materialSpecificationText" clearable><template slot="prepend">Φ</template></el-input>
  343. </el-form-item>
  344. <el-form-item>
  345. <label class="el-form-item__label" style="width: auto;">型号</label>
  346. </el-form-item>
  347. <el-form-item>
  348. <el-input placeholder="请输入内容" v-model="materialModelText" clearable></el-input>
  349. </el-form-item>
  350. <el-button type="primary" class="btn" @click="onclick" style="margin-left: 4px;"><i class="el-icon-search"></i>查询</el-button>
  351. <el-button type="primary" @click="makeSureMaterial"><i class="el-icon-check"></i>确定</el-button>
  352. </el-form>
  353. <div class="tablecls">
  354. <!-- 查询所有的物资 -->
  355. <dilTable v-bind.sync="option" @selection-change="selectionChange">
  356. </dilTable>
  357. </div>
  358. </el-drawer>
  359. <!-- 更改行物资 -->
  360. <el-dialog title="更改物资" :visible.sync="drawer" width="80%">
  361. <el-form :inline="true" style="margin-top: 0.5rem;">
  362. <el-form-item>
  363. <label class="el-form-item__label" style="width: auto;">物资名称</label>
  364. </el-form-item>
  365. <el-form-item>
  366. <el-input placeholder="请输入内容" v-model="materialNameText" clearable></el-input>
  367. </el-form-item>
  368. <el-form-item>
  369. <label class="el-form-item__label" style="width: auto;">规格</label>
  370. </el-form-item>
  371. <el-form-item>
  372. <el-input placeholder="请输入内容" v-model="materialSpecificationText" clearable><template slot="prepend">Φ</template></el-input>
  373. </el-form-item>
  374. <el-form-item>
  375. <label class="el-form-item__label" style="width: auto;">型号</label>
  376. </el-form-item>
  377. <el-form-item>
  378. <el-input placeholder="请输入内容" v-model="materialModelText" clearable></el-input>
  379. </el-form-item>
  380. <el-button type="primary" class="btn" @click="onclick" style="margin-left: 4px;"><i class="el-icon-search"></i>查询</el-button>
  381. </el-form>
  382. <div class="tablecls">
  383. <!-- 查询所有的物资 -->
  384. <dilTable v-bind.sync="option1" @radio-change="currentRadioChange" :drawer="drawer">
  385. </dilTable>
  386. </div>
  387. <div class="button-box">
  388. <el-button @click="closeChangeMaterial">取消更改</el-button>
  389. <el-button type="primary" @click="makeSureChange">确认更改</el-button>
  390. </div>
  391. </el-dialog>
  392. <!-- 订单确认 -->
  393. <el-dialog title="订单明细 (注*: 请仔细确认订单物资和件数后再提交)" :visible.sync="orderMakeSure" width="94%">
  394. <el-form :inline="true" style="margin-top: 0.5rem;">
  395. <el-form-item>
  396. <label class="el-form-item__label" style="width: auto;">发货单位:</label>
  397. <el-tag size="big">{{shipperName}}</el-tag>
  398. </el-form-item>
  399. <el-form-item>
  400. <label class="el-form-item__label" style="width: auto;">收货单位:</label>
  401. <el-tag size="big">{{consigneeName}}</el-tag>
  402. </el-form-item>
  403. <el-form-item>
  404. <label class="el-form-item__label" style="width: auto;">是否自提:</label>
  405. <el-tag size="big">{{saleOrderIsselfMention}}</el-tag>
  406. </el-form-item>
  407. <el-form-item>
  408. <label class="el-form-item__label" style="width: auto;">收款公司:</label>
  409. <el-tag size="big">{{saleOrderReceiveCustomer}}</el-tag>
  410. </el-form-item>
  411. <el-form-item>
  412. <label class="el-form-item__label" style="width: auto;">业务员:</label>
  413. <el-tag size="big">{{saleManText}}</el-tag>
  414. </el-form-item>
  415. <el-form-item>
  416. <label class="el-form-item__label" style="width: auto;">摘要:</label>
  417. <el-tag size="big" v-if="remarks!=null">{{remarks}}</el-tag>
  418. </el-form-item>
  419. </el-form>
  420. <!-- 物资明细信息 -->
  421. <el-table
  422. :data="selectionList"
  423. border
  424. style="width: 100%;margin-top: 0.5rem;"
  425. :span-method="cellMerge"
  426. highlight-current-row
  427. >
  428. <el-table-column
  429. v-for="(item, i) in tableTop"
  430. :key="i"
  431. :prop="item.prop"
  432. :label="item.label"
  433. :width="item.width"
  434. align="center"
  435. show-overflow-tooltip
  436. >
  437. </el-table-column>
  438. </el-table>
  439. <div class="button-box">
  440. <el-button @click="orderMakeSure = false">返回编辑</el-button>
  441. <el-button type="primary" @click="sendRequest">提交订单</el-button>
  442. </div>
  443. </el-dialog>
  444. <div class="button-box">
  445. <el-button @click="cancel">取消</el-button>
  446. <el-button type="primary" @click="makeSure">确定</el-button>
  447. </div>
  448. </div>
  449. </template>
  450. <script>
  451. import PageTitle from "@/components/Page/Title";
  452. import { sjTime,isIntegerNumber } from "@/utils/sharedJsFile";
  453. export default {
  454. components: { PageTitle },
  455. data() {
  456. return {
  457. shipperName:"四川省达州钢铁集团有限责任公司",
  458. shipperId:1,
  459. consigneeName:null,
  460. consigneeId:null,
  461. remarks:null,
  462. saleShipperAddressName:null,
  463. saleShipperAddressId:null,
  464. saleDateOfReceipt:null,
  465. saleOrderConsigneeTel:null,
  466. //加载
  467. selectLineLoading:false,
  468. //物资选中暂存
  469. materialList1: [],
  470. //物资信息查询内容
  471. materialNameText:null,
  472. materialSpecificationText:null,
  473. materialModelText:null,
  474. //物资选中表格
  475. materialList: [],
  476. materialTableTop: [
  477. {
  478. prop: "materialName",
  479. label: "物资名称",
  480. width: "140",
  481. },
  482. {
  483. prop: "meterNumber",
  484. label: "米数",
  485. slot: true,
  486. },
  487. {
  488. prop: "Specification",
  489. label: "规格型号",
  490. width: "140",
  491. },
  492. {
  493. prop: "orderPlanWeight",
  494. label: "件数",
  495. slot: true,
  496. },
  497. {
  498. prop: "carNumber",
  499. label: "分装车数",
  500. slot: true,
  501. },
  502. {
  503. prop: "isPound",
  504. label: "是否磅重销售",
  505. slot: true,
  506. },
  507. ],
  508. table1: false,
  509. //最大车序号数
  510. maxCxh:1,
  511. //存放每一行记录的合并数
  512. spanArr: [],
  513. //pos是spanArr的索引
  514. pos:0,
  515. //判断是内层还是外层点击的收货地址浏览
  516. inOrOut:0,
  517. //地址输入框的值
  518. addresText: "",
  519. //已选中省市县
  520. address:null,
  521. //具体地址
  522. place:null,
  523. //暂存具体地址
  524. place1:null,
  525. //省市县Id
  526. addressId:null,
  527. // input: "",
  528. //物资表格多选
  529. option: {
  530. // 表格请求数据的地址
  531. requestUrl: "/api/v1/uc/getSteelMaterial?apiId=244",
  532. // 控制显示多选列
  533. selectionType: "select",
  534. },
  535. //物资表格单选
  536. option1: {
  537. // 表格请求数据的地址
  538. requestUrl: "/api/v1/uc/getSteelMaterial?apiId=244",
  539. // 控制显示单选列
  540. selectionType: "radio",
  541. },
  542. selectionList: [],
  543. selectionList1: [],
  544. drawer1: false,
  545. direction: "rtl",
  546. form1: {},
  547. value: undefined,
  548. frist: {
  549. requestUrl: "/api/v1/ams/getAddressDeliveryAddress?apiId=255",
  550. selectionType: "radio",
  551. mapList: [],
  552. },
  553. //所有省
  554. provinceList: [],
  555. //选中的省
  556. province: '',
  557. //所有市
  558. cityList: [],
  559. //选中的市
  560. city: '',
  561. //所有的县(区)
  562. countyList: [],
  563. //选中的县
  564. county: '',
  565. options: [
  566. {
  567. values: "yes",
  568. label: "是",
  569. },
  570. {
  571. values: "no",
  572. label: "否",
  573. },
  574. ],
  575. values: "no",
  576. //是否磅重销售
  577. options2: [
  578. {
  579. values2: 0,
  580. label2: "是",
  581. },
  582. {
  583. values2: 1,
  584. label2: "否",
  585. },
  586. ],
  587. values2: 1,
  588. receivingCompany: [
  589. {
  590. values1: "dzgt",
  591. label1: "四川省达州钢铁集团有限责任公司",
  592. },
  593. {
  594. values1: "dgsm",
  595. label1: "四川达钢商贸有限公司",
  596. }
  597. ],
  598. values1: "dzgt",
  599. saleMan: null,
  600. saleManText: null,
  601. saleMans: [],
  602. tableTop: [
  603. {
  604. prop: "cxh",
  605. label: "车序号",
  606. width: "50",
  607. },
  608. {
  609. prop: "materialName",
  610. label: "物资名称",
  611. width: "300",
  612. slot: true,
  613. },
  614. {
  615. prop: "meterNumber",
  616. label: "米数",
  617. width: "60",
  618. slot: true,
  619. },
  620. {
  621. prop: "Specification",
  622. label: "规格型号",
  623. width: "140",
  624. },
  625. {
  626. prop: "orderPlanWeight",
  627. label: "件数",
  628. width: "60",
  629. slot: true,
  630. },
  631. {
  632. prop: "isPound",
  633. label: "是否磅重销售",
  634. width: "80",
  635. slot: true,
  636. },
  637. {
  638. prop: "saleShipperAddressName",
  639. label: "收货地址",
  640. width: "400",
  641. slot: true,
  642. },
  643. {
  644. prop: "saleOrderConsigneeTel",
  645. label: "收货客户电话",
  646. width: "140",
  647. slot: true,
  648. }
  649. ],
  650. row: {},
  651. //打开更改改物资弹出框
  652. drawer: false,
  653. //记录为内层打开
  654. isOpenDrawer: 0,
  655. //记录修改物资单选行的位置
  656. indexChangeMaterial: null,
  657. //记录单选物资Id
  658. selectedMaterialId: null,
  659. //记录单选物资名称
  660. selectedMaterialName: null,
  661. //记录单选物资规格
  662. selectedMaterialSpecification: null,
  663. //记录单选物资型号
  664. selectedMaterialModel: null,
  665. //记录单选物资编码
  666. selectedMaterialCode: null,
  667. //订单确认
  668. orderMakeSure : false,
  669. //是否自提记录字段
  670. saleOrderIsselfMention : null,
  671. //收款公司
  672. saleOrderReceiveCustomer : null,
  673. //是否忽视收货客户电话字段
  674. ignoreSaleOrderConsigneeTel : 0
  675. };
  676. },
  677. created(){
  678. let loadTime1 = new Date(new Date(new Date().toLocaleDateString()).getTime()+(3600 * 1000 * 8 - 1)); // 当天8点前
  679. let loadTime2 = new Date(new Date(new Date().toLocaleDateString()).getTime()+(3600 * 1000 * 32 - 1)); // 次天8点前
  680. if(new Date().getTime()-loadTime1>0){
  681. this.saleDateOfReceipt = loadTime2;
  682. }else{
  683. this.saleDateOfReceipt = loadTime1;
  684. }
  685. //获取所有的省
  686. this.getAllProvince();
  687. //获取所有的业务员
  688. this.getAllsaleMan();
  689. },
  690. methods: {
  691. //获取所有的业务员数据
  692. getAllsaleMan(){
  693. this.axios.get('/api/v1/uc/getSalerList').then((res)=>{
  694. this.saleMans = res.data.data;
  695. })
  696. },
  697. //获取所有省数据
  698. getAllProvince(){
  699. this.axios.post('/api/v1/uc/getAllProvince').then((res)=>{
  700. this.provinceList = res.data.data;
  701. })
  702. },
  703. //省改变
  704. onchangeProvince(){
  705. this.axios.post('/api/v1/uc/getDistrictByProvince?addressProvince='+this.province).then((res)=>{
  706. this.cityList = res.data.data;
  707. })
  708. },
  709. //市改变
  710. onchangeCity(){
  711. this.axios.post('/api/v1/uc/getTownByDistrict?addressDistrict='+this.city).then((res)=>{
  712. this.countyList = res.data.data;
  713. })
  714. },
  715. //县(区)改变
  716. onchangeCounty(){
  717. let mapValue = {
  718. addressProvince : this.province,
  719. addressDistrict : this.city,
  720. addressTown : this.county
  721. }
  722. this.axios.post('/api/v1/uc/getPlaceByAllAddress',mapValue).then((res)=>{
  723. this.addressId = res.data.data[0].addressId;
  724. })
  725. },
  726. //发货单位弹出层
  727. handleSelectCarrier(item){
  728. this.shipperName = item.shipperName;
  729. this.shipperId = item.shipperId;
  730. },
  731. //以下是发货单位边输边查搜索
  732. querySearchCarrier(queryString, cb) {
  733. this.axios.post('/api/v1/uc/getRequireUnitName?index='+queryString).then((res)=>{
  734. if(res.data.code == "200"){
  735. var restaurantsCarrier = res.data.data
  736. var results = queryString ? restaurantsCarrier.filter(this.createFilterCarrier(queryString)) :restaurantsCarrier;
  737. // 调用 callback 返回建议列表的数据
  738. cb(results);
  739. }
  740. })
  741. },
  742. createFilterCarrier(queryString) {
  743. return (restaurantsCarrier) => {
  744. return (restaurantsCarrier.shipperName.toLowerCase().indexOf(queryString.toLowerCase()) > -1);
  745. };
  746. },
  747. //以上是发货单位边输边查搜索
  748. //收货单位弹出层
  749. handleSelectConsignee(item){
  750. this.consigneeName = item.consigneeCompanyName;
  751. this.consigneeId = item.consigneeId;
  752. //带出摘要
  753. this.axios.post('/api/v1/uc/getSaleArea?receiveId='+this.consigneeId).then((res)=>{
  754. this.remarks = res.data.data;
  755. })
  756. },
  757. //以下是收货单位边输边查搜索
  758. querySearchConsignee(queryString, cb) {
  759. this.axios.post('/api/v1/uc/getConsigneeByLike?index='+queryString).then((res)=>{
  760. if(res.data.code == "200"){
  761. var restaurantsConsignee = res.data.data
  762. var results = queryString ? restaurantsConsignee.filter(this.createFilterConsignee(queryString)) :restaurantsConsignee;
  763. // 调用 callback 返回建议列表的数据
  764. cb(results);
  765. }
  766. })
  767. },
  768. createFilterConsignee(queryString) {
  769. return (restaurantsConsignee) => {
  770. return (restaurantsConsignee.value.toLowerCase().indexOf(queryString.toLowerCase()) > -1);
  771. };
  772. },
  773. //以上是收货单位边输边查搜索
  774. //新增物资
  775. addMaterial(){
  776. if(!this.shipperName){
  777. this.$message.warning('发货单位未填写!')
  778. }else if(!this.consigneeName){
  779. this.$message.warning('收货单位未填写!')
  780. }else if(!this.consigneeId){
  781. this.$message.error('请选择一个收货单位下拉框中的选项!')
  782. }else if(!this.saleMan){
  783. this.$message.warning('业务员未选择!')
  784. }else{
  785. this.option.requestUrl = "/api/v1/uc/getSteelMaterial?apiId=244&i="+new Date();
  786. this.table1 = true;
  787. }
  788. },
  789. //返回选中的物资信息
  790. selectionChange(selection) {
  791. this.materialList1 = [];
  792. this.materialList1 = selection;
  793. },
  794. //确认新增物资
  795. makeSureMaterial(){
  796. //记录是理重还是磅重
  797. var getisPound = 1;
  798. this.materialList1.forEach((e) => {
  799. if(!e.materialSpecification){
  800. e.materialSpecification = '';
  801. }
  802. if(!e.materialModel){
  803. e.materialModel = '';
  804. }
  805. //判断物资是否为盘螺或非定尺
  806. if(e.materialName.includes("盘螺")||e.materialName.includes("乱尺")){
  807. getisPound = 0;
  808. }else{
  809. getisPound = 1;
  810. }
  811. //若物资为带有盘螺、盘圆、盘元,默认无米数
  812. if(e.materialName.includes("盘螺")||e.materialName.includes("盘圆")||e.materialName.includes("盘元")){
  813. var addmap = {
  814. materialName: e.materialName,
  815. Specification: e.materialSpecification+e.materialModel,
  816. materialCode: e.materialCode,
  817. orderPlanWeight: null,
  818. meterNumber: null,
  819. isPound: getisPound,
  820. //物资Id
  821. materialId: e.materialId,
  822. //无米数
  823. haveMeter: 0
  824. };
  825. }else{
  826. var addmap = {
  827. materialName: e.materialName,
  828. Specification: e.materialSpecification+e.materialModel,
  829. materialCode: e.materialCode,
  830. orderPlanWeight: null,
  831. meterNumber: null,
  832. isPound: getisPound,
  833. //物资Id
  834. materialId: e.materialId,
  835. //有米数
  836. haveMeter: 1
  837. };
  838. }
  839. this.materialList.push(addmap);
  840. });
  841. this.materialList1 = [];
  842. this.table1 = false;
  843. //初始化查询数据
  844. this.materialNameText=null,
  845. this.materialSpecificationText=null,
  846. this.materialModelText=null
  847. },
  848. //删除物资行数据
  849. deleteMaterialRow(index, rows){
  850. rows.splice(index, 1);
  851. },
  852. //删除一车数据
  853. deleteRow(index, rows) {
  854. //删除车序号相同的行
  855. if(this.spanArr[index]==1){
  856. //动态调整车序号
  857. rows.forEach((e) => {
  858. if(rows[index].cxh<e.cxh){
  859. e.cxh-=1;
  860. }
  861. });
  862. //最大车序号减1
  863. this.maxCxh-=1;
  864. }
  865. rows.splice(index, 1);
  866. //调用记录每一行的合并数的方法
  867. this.getSpanArr(this.selectionList);
  868. },
  869. //准备生成部分订单
  870. createACar(){
  871. if(!this.saleOrderConsigneeTel&&this.ignoreSaleOrderConsigneeTel==0){
  872. this.$confirm('收货客户电话未填写会导致无法接收车辆发货短信, 是否继续?', '提示', {
  873. confirmButtonText: '确定',
  874. cancelButtonText: '取消',
  875. type: 'warning'
  876. }).then(() => {
  877. this.ignoreSaleOrderConsigneeTel = 1;
  878. this.addMaterialToSaleOrder();
  879. }).catch(() => {
  880. this.$message.info("已取消!");
  881. });
  882. }else{
  883. this.addMaterialToSaleOrder();
  884. }
  885. },
  886. //添加物资到订单
  887. addMaterialToSaleOrder(){
  888. if(this.materialList.length==0){
  889. this.$message.warning("请至少为这一车添加一个物资!");
  890. }else if(!this.saleShipperAddressName&&this.values=='no'){
  891. this.$message.warning("收货地址未填写!");
  892. }else if(this.materialList.length==1&&this.materialList[0].carNumber!=null){
  893. var eachOrderPlanWeight = this.materialList[0].orderPlanWeight/this.materialList[0].carNumber;
  894. if(isIntegerNumber(eachOrderPlanWeight)){
  895. var e = this.materialList[0];
  896. for(var i=0;i<this.materialList[0].carNumber;i++){
  897. var addmap = {
  898. cxh: this.maxCxh,
  899. materialName: e.materialName,
  900. Specification: e.Specification,
  901. materialCode: e.materialCode,
  902. orderPlanWeight: eachOrderPlanWeight,
  903. meterNumber: e.meterNumber,
  904. isPound: e.isPound,
  905. saleShipperAddressId: this.saleShipperAddressId,
  906. place: this.place1,
  907. saleShipperAddressName:this.saleShipperAddressName,
  908. saleDateOfReceipt: this.saleDateOfReceipt,
  909. saleOrderConsigneeTel: this.saleOrderConsigneeTel,
  910. materialId: e.materialId,
  911. haveMeter: e.haveMeter
  912. };
  913. this.selectionList.push(addmap);
  914. //最大车序号加1
  915. this.maxCxh+=1;
  916. }
  917. //清空materialList
  918. this.materialList = [];
  919. //调用记录每一行的合并数的方法
  920. this.getSpanArr(this.selectionList);
  921. }else{
  922. this.$message.warning("分配件数不是整数!");
  923. }
  924. }else{
  925. this.materialList.forEach((e) => {
  926. var addmap = {
  927. cxh: this.maxCxh,
  928. materialName: e.materialName,
  929. Specification: e.Specification,
  930. materialCode: e.materialCode,
  931. orderPlanWeight: e.orderPlanWeight,
  932. meterNumber: e.meterNumber,
  933. isPound: e.isPound,
  934. saleShipperAddressId: this.saleShipperAddressId,
  935. place: this.place1,
  936. saleShipperAddressName:this.saleShipperAddressName,
  937. saleDateOfReceipt: this.saleDateOfReceipt,
  938. saleOrderConsigneeTel: this.saleOrderConsigneeTel,
  939. materialId: e.materialId,
  940. haveMeter: e.haveMeter
  941. };
  942. this.selectionList.push(addmap);
  943. });
  944. //清空materialList
  945. this.materialList = [];
  946. //最大车序号加1
  947. this.maxCxh+=1;
  948. //调用记录每一行的合并数的方法
  949. this.getSpanArr(this.selectionList);
  950. }
  951. },
  952. //更改行物资
  953. changeMaterial(index){
  954. this.option1.requestUrl = "/api/v1/uc/getSteelMaterial?apiId=244&i="+new Date();
  955. this.drawer = true;
  956. this.isOpenDrawer = 1;
  957. this.indexChangeMaterial = index;
  958. },
  959. //关闭更改行物资
  960. closeChangeMaterial(){
  961. this.drawer = false;
  962. this.isOpenDrawer = 0;
  963. this.$message.info("取消更改!");
  964. },
  965. //单选一行物资
  966. currentRadioChange(row){
  967. this.selectedMaterialId = row.materialId;
  968. this.selectedMaterialName = row.materialName;
  969. this.selectedMaterialSpecification = row.materialSpecification;
  970. this.selectedMaterialModel = row.materialModel;
  971. this.selectedMaterialCode = row.materialCode;
  972. },
  973. //确认物资修改
  974. makeSureChange(){
  975. if(!this.selectedMaterialId){
  976. this.$message.warning("请先选择一个物资!");
  977. }else{
  978. if(!this.selectedMaterialSpecification){
  979. this.selectedMaterialSpecification = '';
  980. }
  981. if(!this.selectedMaterialModel){
  982. this.selectedMaterialModel = '';
  983. }
  984. //记录是理重还是磅重
  985. var getisPound = 1;
  986. //判断物资是否为盘螺或非定尺
  987. if(this.selectedMaterialName.includes("盘螺")||this.selectedMaterialName.includes("乱尺")){
  988. getisPound = 0;
  989. }else{
  990. getisPound = 1;
  991. }
  992. this.selectionList[this.indexChangeMaterial].materialId=this.selectedMaterialId;
  993. this.selectionList[this.indexChangeMaterial].materialName=this.selectedMaterialName;
  994. this.selectionList[this.indexChangeMaterial].Specification=this.selectedMaterialSpecification+this.selectedMaterialModel;
  995. this.selectionList[this.indexChangeMaterial].materialCode=this.selectedMaterialModel;
  996. this.selectionList[this.indexChangeMaterial].isPound=getisPound;
  997. //确定更改的物资有无米数
  998. if(this.selectedMaterialName.includes("盘螺")||this.selectedMaterialName.includes("盘圆")||this.selectedMaterialName.includes("盘元")){
  999. this.selectionList[this.indexChangeMaterial].haveMeter = 0;
  1000. this.selectionList[this.indexChangeMaterial].meterNumber = null;
  1001. }else{
  1002. this.selectionList[this.indexChangeMaterial].haveMeter = 1;
  1003. }
  1004. //重新初始化
  1005. this.indexChangeMaterial = null;
  1006. this.selectedMaterialId = null;
  1007. this.selectedMaterialName = null;
  1008. this.selectedMaterialSpecification = null;
  1009. this.selectedMaterialModel = null;
  1010. this.selectedMaterialCode = null;
  1011. //关闭弹出框
  1012. this.drawer = false;
  1013. this.isOpenDrawer = 0;
  1014. //初始化查询数据
  1015. this.materialNameText=null,
  1016. this.materialSpecificationText=null,
  1017. this.materialModelText=null
  1018. this.$message.success("成功更改!");
  1019. }
  1020. },
  1021. //记录每一行的合并数
  1022. getSpanArr(data) {
  1023. //每次调用方法初始化
  1024. this.spanArr = [];
  1025. for (var i = 0; i < data.length; i++) {
  1026. if (i === 0) {
  1027. this.spanArr.push(1);
  1028. this.pos = 0
  1029. } else {
  1030. // 判断当前元素与上一个元素是否相同
  1031. if (data[i].cxh === data[i - 1].cxh) {
  1032. this.spanArr[this.pos] += 1;
  1033. this.spanArr.push(0);
  1034. } else {
  1035. this.spanArr.push(1);
  1036. this.pos = i;
  1037. }
  1038. }
  1039. }
  1040. },
  1041. //根据条件合并行
  1042. cellMerge({ row, column, rowIndex, columnIndex }) {
  1043. if (columnIndex === 0) {
  1044. const _row = this.spanArr[rowIndex];
  1045. const _col = _row > 0 ? 1 : 0;
  1046. return {
  1047. rowspan: _row,
  1048. colspan: _col
  1049. }
  1050. }
  1051. if (columnIndex === 6) {
  1052. const _row = this.spanArr[rowIndex];
  1053. const _col = _row > 0 ? 1 : 0;
  1054. return {
  1055. rowspan: _row,
  1056. colspan: _col
  1057. }
  1058. }
  1059. if (columnIndex === 7) {
  1060. const _row = this.spanArr[rowIndex];
  1061. const _col = _row > 0 ? 1 : 0;
  1062. return {
  1063. rowspan: _row,
  1064. colspan: _col
  1065. }
  1066. }
  1067. // if (columnIndex === 8) {
  1068. // const _row = this.spanArr[rowIndex];
  1069. // const _col = _row > 0 ? 1 : 0;
  1070. // return {
  1071. // rowspan: _row,
  1072. // colspan: _col
  1073. // }
  1074. // }
  1075. // if (columnIndex === 9) {
  1076. // const _row = this.spanArr[rowIndex];
  1077. // const _col = _row > 0 ? 1 : 0;
  1078. // return {
  1079. // rowspan: _row,
  1080. // colspan: _col
  1081. // }
  1082. // }
  1083. // if (columnIndex === 10) {
  1084. // const _row = this.spanArr[rowIndex];
  1085. // const _col = _row > 0 ? 1 : 0;
  1086. // return {
  1087. // rowspan: _row,
  1088. // colspan: _col
  1089. // }
  1090. // }
  1091. },
  1092. //点击外层收货地址浏览事件
  1093. ondrawerOut(){
  1094. if(this.inOrOut%2==0){
  1095. this.inOrOut+=1;
  1096. }
  1097. this.frist.requestUrl = "/api/v1/ams/getAddressDeliveryAddress?apiId=255&i=" + new Date();
  1098. this.drawer1 = true;
  1099. },
  1100. //点击内层收货地址浏览事件
  1101. ondrawer(row,index) {
  1102. if(this.inOrOut%2==1){
  1103. this.inOrOut+=1;
  1104. }
  1105. this.row = row;
  1106. this.row.index = index;
  1107. this.frist.requestUrl = "/api/v1/ams/getAddressDeliveryAddress?apiId=255&i=" + new Date();
  1108. this.drawer1 = true;
  1109. },
  1110. //查询全国省市县
  1111. selectAddresClick(){
  1112. if(this.addresText){
  1113. this.frist.requestUrl = "/api/v1/ams/getAddressDeliveryAddress?apiId=255&con="+this.addresText;
  1114. }else{
  1115. this.frist.requestUrl = "/api/v1/ams/getAddressDeliveryAddress?apiId=255&i=" + new Date();
  1116. }
  1117. },
  1118. //收货地址弹出层
  1119. handleSelect1(item) {
  1120. console.log("获取所有下拉值!");
  1121. },
  1122. //以下是收货地址边输边查搜索
  1123. querySearch1(queryString, cb){
  1124. this.axios
  1125. .post("/api/v1/ams/getRealAddressByLike?addressId="+this.addressId + "&index=" + queryString)
  1126. .then((res) => {
  1127. if (res.data.code == "200") {
  1128. var restaurants = res.data.data;
  1129. var results = queryString
  1130. ? restaurants.filter(this.createFilter1(queryString))
  1131. : restaurants;
  1132. // 调用 callback 返回建议列表的数据
  1133. cb(results);
  1134. }
  1135. });
  1136. },
  1137. createFilter1(queryString) {
  1138. return (restaurants) => {
  1139. return (
  1140. restaurants.value.toLowerCase().indexOf(queryString.toLowerCase()) >
  1141. -1
  1142. );
  1143. };
  1144. },
  1145. //以上是收货地址边输边查搜索
  1146. //监听收货地址模态框点击事件
  1147. currentRadioChange1(radioList) {
  1148. this.addressId = radioList.addressId;
  1149. this.address = radioList.address;
  1150. },
  1151. //确定收货地址事件
  1152. addAddressClick(){
  1153. if(this.inOrOut%2==0){
  1154. for(var i=this.row.index;i<this.spanArr[this.row.index]+this.row.index;i++){
  1155. this.selectionList[i].saleShipperAddressId = this.addressId;
  1156. this.selectionList[i].place = this.place;
  1157. this.selectionList[i].saleShipperAddressName = this.province+this.city+this.county+this.place;
  1158. }
  1159. this.drawer1 = false;
  1160. }else{
  1161. this.saleShipperAddressId = this.addressId;
  1162. this.saleShipperAddressName = this.province+this.city+this.county+this.place;
  1163. this.drawer1 = false;
  1164. }
  1165. //初始化
  1166. this.addressId = null;
  1167. this.province = null;
  1168. this.cityList = [];
  1169. this.city = null;
  1170. this.countyList = [];
  1171. this.county = null;
  1172. //暂存具体地址
  1173. this.place1 = this.place;
  1174. this.place = null;
  1175. this.addresText = null;
  1176. },
  1177. //批量修改内层值
  1178. batchUpdateValue(row,index){
  1179. for(var i=index;i<this.spanArr[index]+index;i++){
  1180. this.selectionList[i].saleOrderConsigneeTel=row.saleOrderConsigneeTel;
  1181. }
  1182. },
  1183. //物资模态框查询
  1184. onclick() {
  1185. if(this.isOpenDrawer==0){
  1186. this.option.requestUrl =
  1187. "/api/v1/uc/getSteelMaterial?apiId=244&materialNameText=" + this.materialNameText +
  1188. "&materialSpecificationText="+this.materialSpecificationText + "&materialModelText="+ this.materialModelText;
  1189. }else{
  1190. this.option1.requestUrl =
  1191. "/api/v1/uc/getSteelMaterial?apiId=244&materialNameText=" + this.materialNameText +
  1192. "&materialSpecificationText="+this.materialSpecificationText + "&materialModelText="+ this.materialModelText;
  1193. }
  1194. },
  1195. // 确定
  1196. makeSure() {
  1197. //获取是否自提字段
  1198. this.options.forEach((e) => {
  1199. if (this.values == e.values) {
  1200. this.saleOrderIsselfMention = e.label;
  1201. }
  1202. });
  1203. //获取收款公司字段
  1204. this.receivingCompany.forEach((f)=>{
  1205. if(this.values1 == f.values1){
  1206. this.saleOrderReceiveCustomer = f.label1;
  1207. }
  1208. })
  1209. //获取业务员姓名
  1210. this.saleMans.forEach((g)=>{
  1211. if(this.saleMan == g.value){
  1212. this.saleManText = g.label;
  1213. }
  1214. })
  1215. this.orderMakeSure = true;
  1216. },
  1217. //发送请求
  1218. sendRequest(){
  1219. this.orderMakeSure = false;
  1220. //是否还有件数未填写
  1221. var orderPlanWeightAllFill = 0;
  1222. //初始化maplist
  1223. var mapList = [];
  1224. this.selectionList.forEach((item) => {
  1225. if(!item.orderPlanWeight){
  1226. orderPlanWeightAllFill++;
  1227. }
  1228. //初始化mapItem
  1229. var mapItem={
  1230. //车序号
  1231. truckNo : 0,
  1232. //省市县id
  1233. shipperAddressId : 0,
  1234. //具体地址
  1235. place :null,
  1236. //截止日期
  1237. saleDateOfReceipt :null,
  1238. //收货方电话
  1239. saleOrderConsigneeTel :"",
  1240. //车序号物资ID
  1241. materialId : 0,
  1242. //物资件数
  1243. materialNumber : 0,
  1244. //米数
  1245. steelMeters : 0,
  1246. //是否磅重销售
  1247. isPoundSale : 0,
  1248. };
  1249. mapItem.truckNo=item.cxh;
  1250. mapItem.shipperAddressId=item.saleShipperAddressId;
  1251. mapItem.place=item.place;
  1252. mapItem.saleDateOfReceipt=sjTime(item.saleDateOfReceipt);
  1253. mapItem.saleOrderConsigneeTel=item.saleOrderConsigneeTel;
  1254. mapItem.materialId=item.materialId;
  1255. mapItem.materialNumber=item.orderPlanWeight;
  1256. mapItem.steelMeters=item.meterNumber;
  1257. mapItem.isPoundSale=item.isPound;
  1258. mapList.push(mapItem);
  1259. });
  1260. let mapValue = {
  1261. shipperId : this.shipperId,
  1262. receiveId : this.consigneeId,
  1263. isSelfMention : this.saleOrderIsselfMention,
  1264. saleOrderReceiveCustomer : this.saleOrderReceiveCustomer,
  1265. salerId : this.saleMan,
  1266. saleRemark : this.remarks,
  1267. mapList : mapList
  1268. }
  1269. //所有列件数都填写
  1270. if(orderPlanWeightAllFill==0){
  1271. this.axios.post("/api/v1/ams/addSteelSaleOrder", mapValue).then((res) => {
  1272. if (res.data.code == "200") {
  1273. this.$router.go(-1);
  1274. }
  1275. this.$message.success("新增订单成功!");
  1276. });
  1277. }else{
  1278. this.$message.error("还有物资件数未填写!");
  1279. }
  1280. },
  1281. // 取消
  1282. cancel() {
  1283. this.$router.go(-1);
  1284. },
  1285. //关闭事件
  1286. handleClose(done) {
  1287. this.$confirm("确认关闭?")
  1288. .then((_) => {
  1289. done();
  1290. })
  1291. .catch((_) => {});
  1292. },
  1293. CloseClick() {},
  1294. },
  1295. };
  1296. </script>
  1297. <style lang='scss' scoped>
  1298. .addSalePlan{
  1299. width: 100%;
  1300. }
  1301. .form-box,
  1302. .from {
  1303. display: flex;
  1304. align-items: center;
  1305. justify-content: center;
  1306. margin-top: 5px;
  1307. margin-bottom: 20px;
  1308. }
  1309. .button-box{
  1310. display: flex;
  1311. text-align: center;
  1312. align-items: center;
  1313. justify-content: center;
  1314. margin-top: 0.3125rem;
  1315. margin-bottom: 1.25rem;
  1316. }
  1317. .select {
  1318. margin-left: -10rem;
  1319. }
  1320. .demo-form-inline {
  1321. margin-left: 2rem;
  1322. }
  1323. .table_form {
  1324. margin-left: -16rem;
  1325. }
  1326. .textinput111{
  1327. width: 83px;
  1328. }
  1329. .textinput {
  1330. width: 50px;
  1331. }
  1332. .textinput1 {
  1333. width: 50px;
  1334. text-align: center;
  1335. size: small;
  1336. }
  1337. .textinput2 {
  1338. width: 50px;
  1339. margin-right: 30px;
  1340. }
  1341. .textinput3 {
  1342. width: 270px;
  1343. }
  1344. .textinput4 {
  1345. width: 60px;
  1346. }
  1347. .textinput5 {
  1348. width: 120px;
  1349. }
  1350. </style>