salesContractAdd.vue 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624
  1. <template>
  2. <div class="container">
  3. <el-row>
  4. <el-col :span="12">
  5. <h2 class="bg-left title">创建销售合同</h2>
  6. </el-col>
  7. <el-col :span="12" class="bg-right">
  8. <el-button
  9. class="bg-bottom"
  10. type="primary"
  11. size="small"
  12. @click="returnsales()"
  13. >返回</el-button
  14. >
  15. </el-col>
  16. </el-row>
  17. <div class="wenzi">
  18. <h3>基本信息</h3>
  19. <p>
  20. &nbsp;&nbsp;注:基本信息和货物信息均为必填项,“*”
  21. 标记的条目提交后不可修改。
  22. </p>
  23. </div>
  24. <div class="center">
  25. <ws-form ref="deptBudgetList" :model="deptBudgetList">
  26. <!--基本信息-->
  27. <ws-info-table>
  28. <!--合同编号-->
  29. <ws-form-item
  30. label="合同编号"
  31. span="1"
  32. prop="contractNo"
  33. class="readonly"
  34. >
  35. <ws-input
  36. v-model="deptBudgetList.contractNo"
  37. placeholder="请输入合同编号"
  38. maxlength="20"
  39. size="small"
  40. :rules="ruleDeptBudget"
  41. />
  42. </ws-form-item>
  43. <!--运输方式-->
  44. <ws-form-item label="运输方式" span="1" prop="shippingType">
  45. <ws-input
  46. v-model="deptBudgetList.shippingType"
  47. placeholder="请输入运输方式"
  48. maxlength="20"
  49. size="small"
  50. />
  51. </ws-form-item>
  52. <!--买方-->
  53. <ws-form-item label="买方" span="1" prop="buyer" class="readonly">
  54. <ws-input
  55. v-model="deptBudgetList.buyer"
  56. placeholder="请输入买方名称"
  57. maxlength="100"
  58. size="small"
  59. />
  60. </ws-form-item>
  61. <!--结算方式-->
  62. <ws-form-item label="结算方式" span="1" prop="settlementMethod">
  63. <ws-input
  64. v-model="deptBudgetList.settlementMethod"
  65. placeholder="请输入结算方式"
  66. maxlength="120"
  67. size="small"
  68. />
  69. </ws-form-item>
  70. <!--卖方-->
  71. <ws-form-item label="卖方" span="1" prop="seller" class="readonly">
  72. <ws-input
  73. v-model="deptBudgetList.seller"
  74. placeholder="请输入卖方名称"
  75. maxlength="100"
  76. size="small"
  77. />
  78. </ws-form-item>
  79. <ws-form-item
  80. label="交货方式"
  81. span="1"
  82. prop="seller"
  83. class="readonly"
  84. >
  85. <el-radio v-model="deptBudgetList.deliverType" label="1"
  86. >我方自提</el-radio
  87. >
  88. <el-radio v-model="deptBudgetList.deliverType" label="2"
  89. >对方送货</el-radio
  90. >
  91. </ws-form-item>
  92. <!--买方电话-->
  93. <ws-form-item label="买方电话" span="1" prop="contractNo">
  94. <ws-input
  95. v-model.number="deptBudgetList.buyerPhone"
  96. placeholder="请输入买方电话"
  97. maxlength="100"
  98. size="small"
  99. />
  100. </ws-form-item>
  101. <!--包装方式-->
  102. <ws-form-item label="包装方式" span="1" prop="packingMethod">
  103. <ws-select
  104. v-model="deptBudgetList.packingMethod"
  105. placeholder=""
  106. class="typeselect"
  107. @change="selectpackingMethod"
  108. >
  109. <ws-option
  110. v-for="item in packtypeList"
  111. :key="item.constKey"
  112. :label="item.constValue"
  113. :value="item.constValue"
  114. />
  115. </ws-select>
  116. </ws-form-item>
  117. <!--卖方电话-->
  118. <ws-form-item label="卖方电话" span="1" prop="sellerPhone">
  119. <ws-input
  120. v-model="deptBudgetList.sellerPhone"
  121. placeholder="请输入卖方电话"
  122. maxlength="100"
  123. size="small"
  124. />
  125. </ws-form-item>
  126. <!--验收方式-->
  127. <ws-form-item label="验收方式" span="1" prop="acceptanceMethod">
  128. <el-select
  129. v-model="deptBudgetList.acceptanceMethod"
  130. placeholder="请选择验收方式"
  131. style="width: 100%"
  132. filterable
  133. @change="selectunitList"
  134. >
  135. <el-option
  136. v-for="(item, index) in unitList"
  137. :key="item.constValue"
  138. :label="item.constValue"
  139. :value="item.constValue"
  140. >
  141. <span class="unit-left" style="float: left">
  142. <span v-if="item.flag == 'delete'">
  143. {{ item.constValue }}</span
  144. >
  145. <!-- 新增文本框 -->
  146. <div
  147. style="width: 160px"
  148. v-if="item.flag !== 'delete'"
  149. @click.stop
  150. >
  151. <ws-input
  152. v-model="item.constValue"
  153. clearable
  154. maxlength="10"
  155. style="width: 100%"
  156. ></ws-input>
  157. </div>
  158. </span>
  159. <span style="float: right; color: #8492a6; font-size: 13px">
  160. <!-- 对号 -->
  161. <i
  162. class="el-icon-check"
  163. style="line-height: 29px; margin-left: 10px"
  164. v-if="item.flag !== 'delete'"
  165. @click.stop="saveClick(item, index)"
  166. ></i>
  167. <!-- 编辑 -->
  168. <i
  169. class="el-icon-edit"
  170. style="line-height: 29px; margin-left: 10px"
  171. v-if="item.flag == 'delete'"
  172. @click.stop="editClick(item, index)"
  173. ></i>
  174. <!-- 删除 -->
  175. <i
  176. class="el-icon-delete"
  177. style="line-height: 29px"
  178. @click.stop="deleteClick(item, index)"
  179. ></i>
  180. </span>
  181. </el-option>
  182. <!-- 新增按钮 -->
  183. <el-option value="" label="">
  184. <div
  185. style="
  186. text-align: right;
  187. border-top: 1px solid #dcdfe6;
  188. padding: 5px;
  189. "
  190. >
  191. <ws-button type="primary" @click.stop="addClick">{{
  192. $t('button.add')
  193. }}</ws-button>
  194. </div>
  195. </el-option>
  196. </el-select>
  197. </ws-form-item>
  198. <!--重量(吨)-->
  199. <ws-form-item label="重量(吨)" span="1" prop="weight">
  200. <ws-input
  201. v-model="deptBudgetList.weight"
  202. placeholder="请输入重量(吨)"
  203. maxlength="100"
  204. size="small"
  205. />
  206. </ws-form-item>
  207. <!--交货日期(起)-->
  208. <ws-form-item
  209. label="交货日期(起)"
  210. span="1"
  211. prop="deliveryDateStart"
  212. >
  213. <ws-date-picker
  214. v-model="deptBudgetList.deliveryDateStart"
  215. type="date"
  216. placeholder="请选择交货日期(起)"
  217. value-format="yyyy-MM-dd"
  218. />
  219. </ws-form-item>
  220. <!--溢短装(%)-->
  221. <ws-form-item label="溢短装(%)" span="1" prop="overShort">
  222. <ws-input
  223. v-model="deptBudgetList.overShort"
  224. placeholder="请输入溢短装比例(%)"
  225. maxlength="100"
  226. size="small"
  227. />
  228. </ws-form-item>
  229. <!--交货日期(止)-->
  230. <ws-form-item label="交货日期(止)" span="1" prop="deliveryDateEnd">
  231. <ws-date-picker
  232. v-model="deptBudgetList.deliveryDateEnd"
  233. type="date"
  234. placeholder="请选择交货日期(止)"
  235. value-format="yyyy-MM-dd"
  236. />
  237. </ws-form-item>
  238. <!--合同单价(元/吨)-->
  239. <ws-form-item
  240. class="readonly"
  241. label="合同单价(元/吨)"
  242. span="1"
  243. prop="unitContractPrice"
  244. >
  245. <ws-input
  246. v-model="deptBudgetList.unitContractPrice"
  247. placeholder="请输入合同单价"
  248. maxlength="100"
  249. size="small"
  250. />
  251. </ws-form-item>
  252. <!--合同总价-->
  253. <ws-form-item label="合同总价" span="1" prop="totalContractPrice">
  254. <ws-input
  255. v-model="deptBudgetList.totalContractPrice"
  256. placeholder="请输入合同总价"
  257. maxlength="100"
  258. size="small"
  259. />
  260. </ws-form-item>
  261. <ws-form-item label="货源所在地区" span="1" prop="sourceGoods">
  262. <el-cascader
  263. :options="options_"
  264. v-model="selectedOptions"
  265. clearable
  266. size="large"
  267. placeholder="请选择货源所在地区"
  268. style="width: 200%"
  269. @change="handleChange"
  270. />
  271. </ws-form-item>
  272. <ws-form-item label="货源详细地址" span="1" prop="sourceGoods">
  273. <ws-input
  274. v-model="deptBudgetList.sourceGoods"
  275. placeholder="请输入货源详细地址"
  276. maxlength="20"
  277. size="small"
  278. />
  279. </ws-form-item>
  280. <ws-form-item label="交货所在地区" span="1" prop="sourceGoods">
  281. <el-cascader
  282. :options="options_"
  283. v-model="selectedOptions1"
  284. clearable
  285. size="large"
  286. placeholder="请选择交货所在地区"
  287. style="width: 200%"
  288. @change="handleChange1"
  289. />
  290. </ws-form-item>
  291. <ws-form-item label="交货详细地址" span="1" prop="placeDelivery">
  292. <ws-input
  293. v-model="deptBudgetList.placeDelivery"
  294. placeholder="请输入交货详细地址"
  295. maxlength="20"
  296. size="small"
  297. />
  298. </ws-form-item>
  299. <!--签订日期-->
  300. <ws-form-item label="签订日期" span="1" prop="signingDate">
  301. <ws-date-picker
  302. v-model="deptBudgetList.signingDate"
  303. type="date"
  304. placeholder="请选择合同签订日期"
  305. value-format="yyyy-MM-dd"
  306. />
  307. </ws-form-item>
  308. <ws-form-item
  309. label="最终实际成交量(吨)"
  310. span="1"
  311. prop="finalTradingVolume"
  312. >
  313. <ws-input
  314. v-model="deptBudgetList.finalTradingVolume"
  315. placeholder="请输入最终实际成交量"
  316. maxlength="100"
  317. size="small"
  318. />
  319. </ws-form-item>
  320. </ws-info-table>
  321. </ws-form>
  322. </div>
  323. <div class="wenzi">
  324. <h3>货物信息</h3>
  325. </div>
  326. <div class="center">
  327. <ws-form
  328. ref="deptBudgetList"
  329. :rules="ruleDeptBudget"
  330. :model="deptBudgetList"
  331. >
  332. <!--货物信息-->
  333. <ws-info-table>
  334. <!--货名-->
  335. <ws-form-item label="货名" span="1" prop="goodsName" class="readonly">
  336. <ws-select
  337. v-model="deptBudgetList.contractGoodsInfo.goodsName"
  338. placeholder=""
  339. class="typeselect"
  340. @change="selectpackingMethod"
  341. >
  342. <ws-option
  343. v-for="item in goodnameList"
  344. :key="item.constKey"
  345. :label="item.constValue"
  346. :value="item.constValue"
  347. />
  348. </ws-select>
  349. </ws-form-item>
  350. <!--水分(%)<=-->
  351. <ws-form-item label="水分(%)" span="1" prop="waterContent">
  352. <ws-input
  353. v-model="deptBudgetList.contractGoodsInfo.waterContent"
  354. placeholder="请输入水分占比"
  355. maxlength="100"
  356. size="small"
  357. />
  358. </ws-form-item>
  359. <!--品级-->
  360. <ws-form-item label="品级" span="1" prop="grade" class="readonly">
  361. <ws-select
  362. v-model="deptBudgetList.contractGoodsInfo.grade"
  363. placeholder=""
  364. class="typeselect"
  365. @change="selectgrade"
  366. >
  367. <ws-option
  368. v-for="item in gradeList"
  369. :key="item.constKey"
  370. :label="item.constValue"
  371. :value="item.constValue"
  372. />
  373. </ws-select>
  374. </ws-form-item>
  375. <!--杂质(%)<=-->
  376. <ws-form-item label="杂质(%)" span="1" prop="impurity">
  377. <ws-input
  378. v-model="deptBudgetList.contractGoodsInfo.impurity"
  379. placeholder="请输入杂质占比(%)"
  380. maxlength="40"
  381. size="small"
  382. />
  383. </ws-form-item>
  384. <!--容量(克/升)>=-->
  385. <ws-form-item label="容量(克/升)" span="1" prop="bulkDensity">
  386. <ws-input
  387. v-model="deptBudgetList.contractGoodsInfo.bulkDensity"
  388. placeholder="请输入容重"
  389. maxlength="40"
  390. size="small"
  391. />
  392. </ws-form-item>
  393. <!--霉变粒(%)<=-->
  394. <ws-form-item label="霉变粒(%)" span="1" prop="mildewGrain">
  395. <ws-input
  396. v-model="deptBudgetList.contractGoodsInfo.mildewGrain"
  397. placeholder="请输入霉变粒占比(%)"
  398. maxlength="40"
  399. size="small"
  400. />
  401. </ws-form-item>
  402. <!--热损伤(%)<=-->
  403. <ws-form-item label="热损伤(%)" span="1" prop="jiaorenli">
  404. <ws-input
  405. v-model="deptBudgetList.contractGoodsInfo.jiaorenli"
  406. placeholder="请输入输入热损伤占比(%)"
  407. maxlength="40"
  408. size="small"
  409. />
  410. </ws-form-item>
  411. <!--不完整粒(%)<=-->
  412. <ws-form-item label="不完整粒(%)" span="1" prop="imperfectGrain">
  413. <ws-input
  414. v-model="deptBudgetList.contractGoodsInfo.imperfectGrain"
  415. placeholder="请输入不完整粒占比(%)"
  416. maxlength="40"
  417. size="small"
  418. />
  419. </ws-form-item>
  420. </ws-info-table>
  421. </ws-form>
  422. </div>
  423. <div class="wenzi">
  424. <h3>流程信息</h3>
  425. </div>
  426. <div class="center">
  427. <ws-form
  428. ref="deptBudgetList"
  429. :rules="ruleDeptBudget"
  430. :model="deptBudgetList"
  431. >
  432. <!--流程信息-->
  433. <ws-info-table>
  434. <!--合同收入(元)-->
  435. <ws-form-item label="合同收入(元)" span="1" prop="goodsNameKey">
  436. <ws-input
  437. v-model="deptBudgetList.contractProcessInfo.goodsNameKey"
  438. placeholder="请输入合同收入(元)"
  439. maxlength="100"
  440. size="small"
  441. />
  442. </ws-form-item>
  443. <!--已开发票(元)-->
  444. <ws-form-item label="已开发票(元)" span="1" prop="goodsName">
  445. <ws-input
  446. v-model="deptBudgetList.contractProcessInfo.goodsName"
  447. placeholder="请输入已开发票(元)"
  448. maxlength="100"
  449. size="small"
  450. />
  451. </ws-form-item>
  452. <!--费用支出(元)-->
  453. <ws-form-item label="费用支出(元)" span="1" prop="waterContent">
  454. <ws-input
  455. v-model="deptBudgetList.contractProcessInfo.waterContent"
  456. placeholder="请输入费用支出(元)"
  457. maxlength="100"
  458. size="small"
  459. />
  460. </ws-form-item>
  461. <!--未开发票(元)-->
  462. <ws-form-item label="未开发票(元)" span="1" prop="impurity">
  463. <ws-input
  464. v-model="deptBudgetList.contractProcessInfo.impurity"
  465. placeholder="请输入未开发票(元)"
  466. maxlength="100"
  467. size="small"
  468. />
  469. </ws-form-item>
  470. <!--未回款(元)-->
  471. <ws-form-item label="未回款(元)" span="1" prop="mildewGrain">
  472. <ws-input
  473. v-model="deptBudgetList.contractProcessInfo.mildewGrain"
  474. placeholder="请输入未回款(元)"
  475. maxlength="100"
  476. size="small"
  477. />
  478. </ws-form-item>
  479. <!--已完成发货量(吨)-->
  480. <ws-form-item
  481. label="已完成发运量(吨)"
  482. span="1"
  483. prop="imperfectGrain"
  484. >
  485. <ws-input
  486. v-model="deptBudgetList.contractProcessInfo.imperfectGrain"
  487. placeholder="请输入已完成发运量(吨)"
  488. maxlength="100"
  489. size="small"
  490. />
  491. </ws-form-item>
  492. <!--双章原件回收情况-->
  493. <ws-form-item label="双章原件回收情况" span="1" prop="grade">
  494. <ws-select
  495. v-model="deptBudgetList.contractProcessInfo.grade"
  496. placeholder=""
  497. class="typeselect"
  498. @change="selectpackingMethod"
  499. >
  500. <ws-option
  501. v-for="item in ChapterTwoList"
  502. :key="item.constKey"
  503. :label="item.constValue"
  504. :value="item.constValue"
  505. />
  506. </ws-select>
  507. </ws-form-item>
  508. </ws-info-table>
  509. </ws-form>
  510. </div>
  511. <div class="wenzi">
  512. <h3>备注信息</h3>
  513. </div>
  514. <div class="ce">
  515. <ws-form
  516. ref="deptBudgetList"
  517. :rules="ruleDeptBudget"
  518. :model="deptBudgetList"
  519. >
  520. <!--备注信息-->
  521. <ws-input
  522. v-model="deptBudgetList.remarks"
  523. type="textarea"
  524. row="3"
  525. placeholder="请输入备注信息,不超过200字"
  526. maxlength="200"
  527. />
  528. <ws-upload
  529. ref="upload"
  530. table-name="maintain_work_order"
  531. oss-key="mainPlan"
  532. :comp-id="compId"
  533. :appendix-ids="appendixIdsAdd"
  534. :vesselId="deptBudgetList.addressUrl"
  535. :size-limit="size"
  536. @uploadSuccess="uploadSuccess"
  537. @onChange="onChange"
  538. accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar"
  539. />
  540. </ws-form>
  541. </div>
  542. <div style="text-align: right; padding: 10px" class="center">
  543. <el-button
  544. class="bg-bottom"
  545. type="primary"
  546. size="small"
  547. @click="submit(deptBudgetList)"
  548. >提交</el-button
  549. >
  550. </div>
  551. </div>
  552. </template>
  553. <script>
  554. // import { getVesselOne } from '@/model/procurement/basic'
  555. // import { dayjs } from 'base-core-lib'
  556. import {
  557. packList,
  558. addList,
  559. xiala,
  560. addxiala,
  561. editxiala,
  562. delxiala,
  563. } from '@/model/contarct/index'
  564. import WsUpload from '@/components/WsUpload'
  565. import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
  566. export default {
  567. name: 'viewSpareMoney',
  568. components: {
  569. WsUpload,
  570. },
  571. watch: {
  572. vesselId(val) {
  573. this.getVesselData()
  574. },
  575. isShow(val) {
  576. this.showType = val
  577. },
  578. },
  579. data() {
  580. return {
  581. //弹出框
  582. dialogViewSpareMoney: false,
  583. dialogApproveFormVisible: false,
  584. // 船舶类型
  585. monetaryKey: null,
  586. // 表格显示数据
  587. tableDate: [],
  588. // 是否显示
  589. showType: true,
  590. // 年
  591. year: '',
  592. options_: regionData,
  593. selectedOptions: [],
  594. selectedOptions1: [],
  595. // 提交类型
  596. submitType: true,
  597. tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
  598. trainingMethods: {},
  599. packtypeList: [],
  600. compId: sessionStorage.getItem('ws-pf_compId'),
  601. mainReportAdd: {},
  602. appendixIdsAdd: '',
  603. size: 10,
  604. // uploadSuccess: {},
  605. // onChange:{},
  606. unitList: [],
  607. goodnameList: [],
  608. gradeList: [],
  609. ChapterTwoList: [],
  610. deptBudgetList: {
  611. deliverType: '1',
  612. finalTradingVolume: 0,
  613. contractGoodsInfo: {
  614. goodsName: '',
  615. },
  616. contractProcessInfo: {},
  617. },
  618. pickerBeginDateBefore: {
  619. disabledDate: (time) => {
  620. return time.getTime() > Date.now()
  621. },
  622. },
  623. ruleDeptBudget: {
  624. contractNo: [
  625. { required: true, message: '请输入活动名称', trigger: 'blur' },
  626. {
  627. min: 6,
  628. max: 20,
  629. message: '长度在 6 到 20 个字符',
  630. trigger: 'blur',
  631. },
  632. ],
  633. },
  634. selectIntendedShip: {},
  635. interviewTypeList: {},
  636. }
  637. },
  638. activated() {
  639. //cg.viewBudget
  640. //cg.viewSpareMoney
  641. // this.getVesselData();
  642. this.deptBudgetList.packingMethod = '散装'
  643. this.deptBudgetList.packingMethodKey = 1
  644. this.deptBudgetList.contractGoodsInfo.goodsName = '玉米'
  645. this.deptBudgetList.contractGoodsInfo.goodsNameKey = 1
  646. this.deptBudgetList.contractProcessInfo.grade = '未回收'
  647. this.deptBudgetList.contractProcessInfo.gradeKey = 1
  648. this.deptBudgetList.contractGoodsInfo.grade = '一等品'
  649. this.deptBudgetList.contractGoodsInfo.gradeKey = 1
  650. this.loaddata()
  651. this.showType = this.isShow
  652. },
  653. methods: {
  654. // 关闭 dialog时 处理文件url 初始化upload组件
  655. handleClose() {
  656. this.dialogViewSpareMoney = false
  657. },
  658. handleChange(value) {
  659. this.selectedOptions = value
  660. },
  661. handleChange1(value) {
  662. this.selectedOptions1 = value
  663. },
  664. returnsales() {
  665. this.$router.push({ path: 'salesContract' })
  666. },
  667. loaddata() {
  668. // 包装方式
  669. packList({ constId: 'CON1' })
  670. .toPromise()
  671. .then((response) => {
  672. this.packtypeList = response
  673. })
  674. // 验收方式
  675. this.getUnitList()
  676. // 货名
  677. packList({ constId: 'CON2' })
  678. .toPromise()
  679. .then((response) => {
  680. this.goodnameList = response
  681. })
  682. // 品级
  683. packList({ constId: 'CON3' })
  684. .toPromise()
  685. .then((response) => {
  686. this.gradeList = response
  687. })
  688. // 双章
  689. packList({ constId: 'CON4' })
  690. .toPromise()
  691. .then((response) => {
  692. this.ChapterTwoList = response
  693. })
  694. },
  695. // 上传附件
  696. uploadSuccess(data, files, url) {
  697. console.log(data, files, url)
  698. // this.deptBudgetList.
  699. // this.formData.append('files', files)
  700. // this.feedbackObj.uploadNameAttachment = data.appendixName
  701. // this.feedbackObj.pathUploadAttachment = data.appendixPath
  702. // // this.newAppendixs = files
  703. // this.onChangeFlag = true
  704. },
  705. onChange(files) {
  706. this.fileNum = files
  707. this.$refs.upload.handleSaveBill().then((res) => {
  708. console.log(files)
  709. })
  710. },
  711. getUnitList() {
  712. xiala({
  713. compId: sessionStorage.getItem('ws-pf_compId'),
  714. constCode: 'TYPEYAN',
  715. })
  716. .toPromise()
  717. .then((response) => {
  718. this.unitList = response
  719. let currItem
  720. this.unitList.forEach((item, index, arr) => {
  721. item.flag = 'delete'
  722. if (this.vModel == item.constKey) {
  723. currItem = item
  724. }
  725. })
  726. //
  727. if (currItem) {
  728. this.selectContract(currItem.constValue)
  729. }
  730. })
  731. },
  732. submit() {
  733. if (!this.deptBudgetList.contractNo) {
  734. this.$message({
  735. message: '请输入合同编号',
  736. type: 'warning',
  737. })
  738. return
  739. }
  740. if (
  741. this.deptBudgetList.contractNo.length < 6 ||
  742. this.deptBudgetList.contractNo.length > 20
  743. ) {
  744. this.$message({
  745. message: '合同编号长度不符合要求,请输入6到20个字符之内!',
  746. type: 'warning',
  747. })
  748. return
  749. }
  750. if (!this.deptBudgetList.shippingType) {
  751. this.$message({
  752. message: '请输入运输方式!',
  753. type: 'warning',
  754. })
  755. return
  756. }
  757. if (
  758. this.deptBudgetList.shippingType.length < 1 ||
  759. this.deptBudgetList.shippingType.length > 20
  760. ) {
  761. this.$message({
  762. message: '运输方式长度不符合要求,请输入1到20个字符之内!',
  763. type: 'warning',
  764. })
  765. return
  766. }
  767. if (!this.deptBudgetList.buyer) {
  768. this.$message({
  769. message: '请输入买方名称!',
  770. type: 'warning',
  771. })
  772. return
  773. }
  774. if (this.deptBudgetList.buyer.length > 30) {
  775. this.$message({
  776. message: '买方名称长度不符合要求,请输入30个字符之内!',
  777. type: 'warning',
  778. })
  779. return
  780. }
  781. if (!this.deptBudgetList.seller) {
  782. this.$message({
  783. message: '请输入卖方名称!',
  784. type: 'warning',
  785. })
  786. return
  787. }
  788. if (this.deptBudgetList.seller.length > 30) {
  789. this.$message({
  790. message: '卖方名称长度不符合要求,请输入30个字符之内!',
  791. type: 'warning',
  792. })
  793. return
  794. }
  795. if (!this.deptBudgetList.buyerPhone) {
  796. this.$message({
  797. message: '请输入买方电话!',
  798. type: 'warning',
  799. })
  800. return
  801. }
  802. if (isNaN(this.deptBudgetList.buyerPhone)) {
  803. this.$message({
  804. message: '输入买方电话有误!',
  805. type: 'warning',
  806. })
  807. return
  808. }
  809. if (
  810. this.deptBudgetList.buyerPhone.length < 7 ||
  811. this.deptBudgetList.buyerPhone.length > 20
  812. ) {
  813. this.$message({
  814. message: '买方电话长度不符合要求,请输入7到20个字符之内!',
  815. type: 'warning',
  816. })
  817. return
  818. }
  819. if (!this.deptBudgetList.sellerPhone) {
  820. this.$message({
  821. message: '请输入卖方电话!',
  822. type: 'warning',
  823. })
  824. return
  825. }
  826. if (isNaN(this.deptBudgetList.sellerPhone)) {
  827. this.$message({
  828. message: '输入卖方电话有误!',
  829. type: 'warning',
  830. })
  831. return
  832. }
  833. if (
  834. this.deptBudgetList.buyerPhone.length < 7 ||
  835. this.deptBudgetList.buyerPhone.length > 20
  836. ) {
  837. this.$message({
  838. message: '卖方电话长度不符合要求,请输入7到20个字符之内!',
  839. type: 'warning',
  840. })
  841. return
  842. }
  843. if (!this.deptBudgetList.settlementMethod) {
  844. this.$message({
  845. message: '请输入结算方式!',
  846. type: 'warning',
  847. })
  848. return
  849. }
  850. if (!this.deptBudgetList.sourceGoods) {
  851. this.$message({
  852. message: '请输入货源详细地址!',
  853. type: 'warning',
  854. })
  855. return
  856. }
  857. if (!this.deptBudgetList.placeDelivery) {
  858. this.$message({
  859. message: '请输入交货详细地址!',
  860. type: 'warning',
  861. })
  862. return
  863. }
  864. if (!this.deptBudgetList.weight) {
  865. this.$message({
  866. message: '请输入重量!',
  867. type: 'warning',
  868. })
  869. return
  870. }
  871. if (
  872. isNaN(this.deptBudgetList.weight) ||
  873. (String(this.deptBudgetList.weight).indexOf('.') != -1 &&
  874. String(this.deptBudgetList.weight).length -
  875. (String(this.deptBudgetList.weight).indexOf('.') + 1) >
  876. 3) ||
  877. this.deptBudgetList.weight < 0 ||
  878. this.deptBudgetList.weight > 200000
  879. ) {
  880. this.$message({
  881. message: '输入重量有误!',
  882. type: 'warning',
  883. })
  884. return
  885. }
  886. if (
  887. !this.deptBudgetList.overShort &&
  888. isNaN(this.deptBudgetList.overShort)
  889. ) {
  890. this.$message({
  891. message: '溢短装输入有误!',
  892. type: 'warning',
  893. })
  894. return
  895. }
  896. if (
  897. !this.deptBudgetList.unitContractPrice &&
  898. isNaN(this.deptBudgetList.unitContractPrice)
  899. ) {
  900. this.$message({
  901. message: '合同单价输入有误!',
  902. type: 'warning',
  903. })
  904. return
  905. }
  906. if (
  907. !this.deptBudgetList.totalContractPrice &&
  908. isNaN(this.deptBudgetList.totalContractPrice)
  909. ) {
  910. this.$message({
  911. message: '合同总价输入有误!',
  912. type: 'warning',
  913. })
  914. return
  915. }
  916. if (!this.deptBudgetList.deliveryDateStart) {
  917. this.$message({
  918. message: '请选择交货日期(起)',
  919. type: 'warning',
  920. })
  921. return
  922. }
  923. if (!this.deptBudgetList.deliveryDateEnd) {
  924. this.$message({
  925. message: '请选择交货日期(止)',
  926. type: 'warning',
  927. })
  928. return
  929. }
  930. //时间
  931. if (
  932. new Date(this.deptBudgetList.deliveryDateStart).getTime() >
  933. new Date(this.deptBudgetList.deliveryDateEnd).getTime()
  934. ) {
  935. this.$message({
  936. message: '交货日期(止)选择错误',
  937. type: 'warning',
  938. })
  939. return
  940. }
  941. if (!this.deptBudgetList.signingDate) {
  942. this.$message({
  943. message: '请选择签订日期',
  944. type: 'warning',
  945. })
  946. return
  947. }
  948. if (!this.deptBudgetList.contractGoodsInfo.goodsName) {
  949. this.$message({
  950. message: '请选择货名',
  951. type: 'warning',
  952. })
  953. return
  954. }
  955. if (!this.deptBudgetList.contractGoodsInfo.waterContent) {
  956. this.$message({
  957. message: '请选择水分',
  958. type: 'warning',
  959. })
  960. return
  961. }
  962. if (!this.deptBudgetList.contractGoodsInfo.grade) {
  963. this.$message({
  964. message: '请选择品级',
  965. type: 'warning',
  966. })
  967. return
  968. }
  969. if (
  970. !this.deptBudgetList.contractGoodsInfo.impurity ||
  971. (String(this.deptBudgetList.contractGoodsInfo.impurity).indexOf('.') !=
  972. -1 &&
  973. String(this.deptBudgetList.contractGoodsInfo.impurity).length -
  974. (String(this.deptBudgetList.contractGoodsInfo.impurity).indexOf(
  975. '.'
  976. ) +
  977. 1) >
  978. 2)
  979. ) {
  980. this.$message({
  981. message: '杂质输入错误',
  982. type: 'warning',
  983. })
  984. return
  985. }
  986. if (
  987. !this.deptBudgetList.contractGoodsInfo.bulkDensity ||
  988. (String(this.deptBudgetList.contractGoodsInfo.bulkDensity).indexOf(
  989. '.'
  990. ) != -1 &&
  991. String(this.deptBudgetList.contractGoodsInfo.bulkDensity).length -
  992. (String(this.deptBudgetList.contractGoodsInfo.bulkDensity).indexOf(
  993. '.'
  994. ) +
  995. 1) >
  996. 2)
  997. ) {
  998. this.$message({
  999. message: '容重输入错误',
  1000. type: 'warning',
  1001. })
  1002. return
  1003. }
  1004. if (
  1005. !this.deptBudgetList.contractGoodsInfo.mildewGrain ||
  1006. (String(this.deptBudgetList.contractGoodsInfo.mildewGrain).indexOf(
  1007. '.'
  1008. ) != -1 &&
  1009. String(this.deptBudgetList.contractGoodsInfo.mildewGrain).length -
  1010. (String(this.deptBudgetList.contractGoodsInfo.mildewGrain).indexOf(
  1011. '.'
  1012. ) +
  1013. 1) >
  1014. 2)
  1015. ) {
  1016. this.$message({
  1017. message: '霉变粒输入错误',
  1018. type: 'warning',
  1019. })
  1020. return
  1021. }
  1022. if (
  1023. !this.deptBudgetList.contractGoodsInfo.jiaorenli ||
  1024. (String(this.deptBudgetList.contractGoodsInfo.jiaorenli).indexOf('.') !=
  1025. -1 &&
  1026. String(this.deptBudgetList.contractGoodsInfo.jiaorenli).length -
  1027. (String(this.deptBudgetList.contractGoodsInfo.jiaorenli).indexOf(
  1028. '.'
  1029. ) +
  1030. 1) >
  1031. 2)
  1032. ) {
  1033. this.$message({
  1034. message: '热损伤输入错误',
  1035. type: 'warning',
  1036. })
  1037. return
  1038. }
  1039. if (
  1040. !this.deptBudgetList.contractGoodsInfo.imperfectGrain ||
  1041. (String(this.deptBudgetList.contractGoodsInfo.imperfectGrain).indexOf(
  1042. '.'
  1043. ) != -1 &&
  1044. String(this.deptBudgetList.contractGoodsInfo.imperfectGrain).length -
  1045. (String(
  1046. this.deptBudgetList.contractGoodsInfo.imperfectGrain
  1047. ).indexOf('.') +
  1048. 1) >
  1049. 2)
  1050. ) {
  1051. this.$message({
  1052. message: '不完整粒输入错误',
  1053. type: 'warning',
  1054. })
  1055. return
  1056. }
  1057. if (
  1058. (!this.deptBudgetList.contractProcessInfo.goodsNameKey > 1000000000) |
  1059. (this.deptBudgetList.contractProcessInfo.goodsNameKey < 0) ||
  1060. (String(this.deptBudgetList.contractProcessInfo.goodsNameKey).indexOf(
  1061. '.'
  1062. ) != -1 &&
  1063. String(this.deptBudgetList.contractProcessInfo.goodsNameKey).length -
  1064. (String(
  1065. this.deptBudgetList.contractProcessInfo.goodsNameKey
  1066. ).indexOf('.') +
  1067. 1) >
  1068. 2)
  1069. ) {
  1070. this.$message({
  1071. message: '合同收入金额输入错误',
  1072. type: 'warning',
  1073. })
  1074. return
  1075. }
  1076. if (
  1077. (this.deptBudgetList.contractProcessInfo.waterContent > 10000000) |
  1078. (this.deptBudgetList.contractProcessInfo.waterContent < 0) ||
  1079. (String(this.deptBudgetList.contractProcessInfo.waterContent).indexOf(
  1080. '.'
  1081. ) != -1 &&
  1082. String(this.deptBudgetList.contractProcessInfo.waterContent).length -
  1083. (String(
  1084. this.deptBudgetList.contractProcessInfo.waterContent
  1085. ).indexOf('.') +
  1086. 1) >
  1087. 2)
  1088. ) {
  1089. this.$message({
  1090. message: '费用金额输入错误',
  1091. type: 'warning',
  1092. })
  1093. return
  1094. }
  1095. if (
  1096. (this.deptBudgetList.contractProcessInfo.goodsName > 1000000000) |
  1097. (this.deptBudgetList.contractProcessInfo.goodsName < 0) ||
  1098. (String(this.deptBudgetList.contractProcessInfo.goodsName).indexOf(
  1099. '.'
  1100. ) != -1 &&
  1101. String(this.deptBudgetList.contractProcessInfo.goodsName).length -
  1102. (String(this.deptBudgetList.contractProcessInfo.goodsName).indexOf(
  1103. '.'
  1104. ) +
  1105. 1) >
  1106. 2)
  1107. ) {
  1108. this.$message({
  1109. message: '已开发票金额输入错误',
  1110. type: 'warning',
  1111. })
  1112. return
  1113. }
  1114. if (
  1115. (this.deptBudgetList.contractProcessInfo.impurity > 1000000000) |
  1116. (this.deptBudgetList.contractProcessInfo.impurity < 0) ||
  1117. (String(this.deptBudgetList.contractProcessInfo.impurity).indexOf(
  1118. '.'
  1119. ) != -1 &&
  1120. String(this.deptBudgetList.contractProcessInfo.impurity).length -
  1121. (String(this.deptBudgetList.contractProcessInfo.impurity).indexOf(
  1122. '.'
  1123. ) +
  1124. 1) >
  1125. 2)
  1126. ) {
  1127. this.$message({
  1128. message: '未开发票金额输入错误',
  1129. type: 'warning',
  1130. })
  1131. return
  1132. }
  1133. if (
  1134. (this.deptBudgetList.contractProcessInfo.imperfectGrain > 200000) |
  1135. (this.deptBudgetList.contractProcessInfo.imperfectGrain < 0) ||
  1136. (String(this.deptBudgetList.contractProcessInfo.imperfectGrain).indexOf(
  1137. '.'
  1138. ) != -1 &&
  1139. String(this.deptBudgetList.contractProcessInfo.imperfectGrain)
  1140. .length -
  1141. (String(
  1142. this.deptBudgetList.contractProcessInfo.imperfectGrain
  1143. ).indexOf('.') +
  1144. 1) >
  1145. 2)
  1146. ) {
  1147. this.$message({
  1148. message: '已完成发运量输入错误',
  1149. type: 'warning',
  1150. })
  1151. return
  1152. }
  1153. if (
  1154. (!this.deptBudgetList.contractProcessInfo.mildewGrain > 1000000000) |
  1155. (this.deptBudgetList.contractProcessInfo.mildewGrain < 0) ||
  1156. (String(this.deptBudgetList.contractProcessInfo.mildewGrain).indexOf(
  1157. '.'
  1158. ) != -1 &&
  1159. String(this.deptBudgetList.contractProcessInfo.mildewGrain).length -
  1160. (String(
  1161. this.deptBudgetList.contractProcessInfo.mildewGrain
  1162. ).indexOf('.') +
  1163. 1) >
  1164. 2)
  1165. ) {
  1166. this.$message({
  1167. message: '未回款金额输入错误',
  1168. type: 'warning',
  1169. })
  1170. return
  1171. }
  1172. this.$refs.deptBudgetList.validate((valid) => {
  1173. if (valid) {
  1174. this.deptBudgetList.sourceProvince =
  1175. CodeToText[this.selectedOptions[0]]
  1176. this.deptBudgetList.sourceCity = CodeToText[this.selectedOptions[1]]
  1177. this.deptBudgetList.sourceArea = CodeToText[this.selectedOptions[2]]
  1178. this.deptBudgetList.deliveryProvince =
  1179. CodeToText[this.selectedOptions1[0]]
  1180. this.deptBudgetList.deliveryCity =
  1181. CodeToText[this.selectedOptions1[1]]
  1182. this.deptBudgetList.deliveryArea =
  1183. CodeToText[this.selectedOptions1[2]]
  1184. this.deptBudgetList.compId = this.compId
  1185. this.deptBudgetList.contractType = 1
  1186. addList(this.deptBudgetList)
  1187. .toPromise()
  1188. .then((response) => {
  1189. this.$message.success('添加成功')
  1190. this.deptBudgetList = {
  1191. deliverType: '1',
  1192. finalTradingVolume: 0,
  1193. contractGoodsInfo: {
  1194. goodsName: '',
  1195. },
  1196. contractProcessInfo: {},
  1197. }
  1198. this.$router.push({ path: 'salesContract' })
  1199. })
  1200. } else {
  1201. EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
  1202. return false
  1203. }
  1204. })
  1205. },
  1206. resetForm(deptBudgetList) {
  1207. this.$refs[deptBudgetList].resetFields()
  1208. },
  1209. saveClick(item, index) {
  1210. console.log(item)
  1211. if (Object.is(item.id, 1)) {
  1212. return
  1213. }
  1214. if (Object.is(this.unitList[index].flag, 'delete')) {
  1215. this.$set(this.unitList, index, { flag: 'check' })
  1216. } else {
  1217. this.$set(this.unitList, index, { flag: 'delete' })
  1218. }
  1219. if (!item.constValue) {
  1220. this.unitList.splice(index, 1)
  1221. return
  1222. }
  1223. if (item.flag == 'add') {
  1224. item.constKey = Math.random() * 20
  1225. this.trainingMethods.compId = sessionStorage.getItem('ws-pf_compId')
  1226. this.trainingMethods.constKey = item.constKey
  1227. this.trainingMethods.constCode = 'TYPEYAN'
  1228. this.trainingMethods.constValue = item.constValue
  1229. this.trainingMethods.id = item.id
  1230. addxiala(this.trainingMethods)
  1231. .toPromise()
  1232. .then((response) => {
  1233. this.getUnitList()
  1234. })
  1235. } else if (item.flag == 'check') {
  1236. this.trainingMethods.compId = sessionStorage.getItem('ws-pf_compId')
  1237. this.trainingMethods.constKey = item.constKey
  1238. this.trainingMethods.constCode = 'TYPEYAN'
  1239. this.trainingMethods.constValue = item.constValue
  1240. this.trainingMethods.id = item.id
  1241. editxiala(this.trainingMethods)
  1242. .toPromise()
  1243. .then((response) => {
  1244. this.getUnitList()
  1245. })
  1246. }
  1247. },
  1248. // selectContract(val) {
  1249. // let key = this.unitList.find((item) => item.constValue === val).constKey
  1250. // this.pleaseChoose = val
  1251. // },
  1252. handleExamine() {},
  1253. approve() {},
  1254. // returnsales() {
  1255. // this.$router.push({ path: 'purchaseContract' })
  1256. // },
  1257. addClick() {
  1258. // let [flag, constValue, constKey] = ['check', '', '']
  1259. // let obj = { flag, constValue, constKey }
  1260. // let objAdd = { flag: 'add', constValue: '新增项目', constKey: '' }
  1261. // let result = this.unitList.filter((item, val, arr) => {
  1262. // return item.id != '1'
  1263. // })
  1264. // result.push(obj)
  1265. // result.push(objAdd)
  1266. // this.unitList = result
  1267. this.unitList.push({
  1268. flag: 'add',
  1269. constValue: '',
  1270. constKey: '',
  1271. })
  1272. },
  1273. selectChapterTwo(e) {
  1274. for (var i = 0; i < this.ChapterTwoList.length; i++) {
  1275. if (this.ChapterTwoList[i].constValue == e) {
  1276. this.deptBudgetList.gradeKey = this.ChapterTwoList[i].constKey
  1277. }
  1278. }
  1279. },
  1280. selectunitList(e) {
  1281. for (var i = 0; i < this.unitList.length; i++) {
  1282. if (this.unitList[i].constValue == e) {
  1283. this.deptBudgetList.packingMethodKey = this.unitList[i].constKey
  1284. }
  1285. }
  1286. },
  1287. selectgrade(e) {
  1288. for (var i = 0; i < this.gradeList.length; i++) {
  1289. if (this.gradeList[i].constValue == e) {
  1290. this.deptBudgetList.gradeKey = this.gradeList[i].constKey
  1291. }
  1292. }
  1293. },
  1294. selectgoodsName(e) {
  1295. for (var i = 0; i < this.goodnameList.length; i++) {
  1296. if (this.goodnameList[i].constValue == e) {
  1297. this.deptBudgetList.goodsNameKey = this.goodnameList[i].constKey
  1298. }
  1299. }
  1300. },
  1301. selectpackingMethod(e) {
  1302. for (var i = 0; i < this.packtypeList.length; i++) {
  1303. if (this.packtypeList[i].constValue == e) {
  1304. this.deptBudgetList.acceptanceMethodKey =
  1305. this.packtypeList[i].constKey
  1306. }
  1307. }
  1308. },
  1309. // 编辑
  1310. editClick(item, index) {
  1311. const map = JSON.parse(JSON.stringify(item))
  1312. if (Object.is(item.id, 1)) {
  1313. return
  1314. }
  1315. if (Object.is(this.unitList[index].flag, 'delete')) {
  1316. map.flag = 'check'
  1317. this.$set(this.unitList, index, map)
  1318. } else {
  1319. map.flag = 'delete'
  1320. this.$set(this.unitList, index, map)
  1321. }
  1322. },
  1323. // 删除
  1324. deleteClick(item, index) {
  1325. if (Object.is(item.constKey, 1)) {
  1326. return
  1327. }
  1328. if (!item.constValue) {
  1329. this.unitList.splice(index, 1)
  1330. return
  1331. }
  1332. delxiala({ id: this.unitList[index].id })
  1333. .toPromise()
  1334. .then((response) => {
  1335. this.getUnitList()
  1336. this.pleaseChoose = ''
  1337. })
  1338. },
  1339. },
  1340. }
  1341. </script>
  1342. <style lang="scss" scoped>
  1343. /deep/.ws-info-table .el-form-item .el-form-item__content {
  1344. padding: 0 25px;
  1345. }
  1346. /deep/.ws-info-table .el-form-item {
  1347. border-right: 1px solid #cdd2dc;
  1348. border-bottom: 1px solid #cdd2dc;
  1349. }
  1350. .title {
  1351. position: relative;
  1352. }
  1353. .title::before {
  1354. content: '';
  1355. display: inline-block;
  1356. width: 5px;
  1357. height: 30px;
  1358. background: #5473e8;
  1359. position: absolute;
  1360. left: 0;
  1361. }
  1362. .el-button--primary {
  1363. background-color: #5878e8;
  1364. border-color: #5878e8;
  1365. }
  1366. .el-col {
  1367. background: #f6f7fc;
  1368. }
  1369. .readonly {
  1370. position: relative;
  1371. }
  1372. .readonly:after {
  1373. content: '*';
  1374. color: #ff2727;
  1375. position: absolute;
  1376. right: 8px;
  1377. z-index: 10;
  1378. top: 21%;
  1379. font-size: 20px;
  1380. }
  1381. /deep/.ws-info-table .el-form-item .el-form-item__content {
  1382. padding: 0 25px;
  1383. border-left: 1px solid #cdd2dc;
  1384. background: #fafbfc;
  1385. }
  1386. /deep/.ws-info-table .el-form-item .el-form-item__label {
  1387. width: 140px;
  1388. text-align: center;
  1389. background: #f0f2f6;
  1390. // border: 1px solid #cdd2dc;
  1391. }
  1392. .button-container {
  1393. display: flex;
  1394. flex-wrap: nowrap;
  1395. justify-content: space-between;
  1396. align-items: center;
  1397. background-color: #fff;
  1398. width: 100%;
  1399. height: 50px;
  1400. padding: 0 10px;
  1401. & > div {
  1402. margin-left: 10px;
  1403. display: flex;
  1404. flex-wrap: nowrap;
  1405. flex-direction: row;
  1406. & > span {
  1407. line-height: 50px;
  1408. }
  1409. }
  1410. /deep/.auditFlow-box {
  1411. position: unset;
  1412. margin-left: 10px;
  1413. &/deep/.auditFlow-icon {
  1414. width: auto;
  1415. padding-right: 30px;
  1416. }
  1417. &/deep/.auditFlow-main {
  1418. position: absolute;
  1419. }
  1420. }
  1421. }
  1422. .box-app {
  1423. display: inline-block;
  1424. float: left;
  1425. margin-left: 30px;
  1426. line-height: 50px;
  1427. }
  1428. /deep/.el-dialog {
  1429. .el-form-item {
  1430. margin-bottom: 0 !important;
  1431. .el-input--medium {
  1432. textarea {
  1433. min-height: 100px !important;
  1434. }
  1435. }
  1436. }
  1437. }
  1438. .collapse-bottom {
  1439. margin-bottom: 20px;
  1440. }
  1441. .input-main .textarea .el-textarea__inner {
  1442. width: 100%;
  1443. z-index: 1;
  1444. }
  1445. .bg-left {
  1446. padding-left: 30px;
  1447. }
  1448. .bg-right {
  1449. padding-right: 10px;
  1450. text-align: right;
  1451. }
  1452. .bg-bottom {
  1453. margin: 16px 0px;
  1454. }
  1455. .wenzi {
  1456. width: 70%;
  1457. margin: 0 auto;
  1458. }
  1459. .wenzi h3 {
  1460. display: inline-block;
  1461. left: 10px;
  1462. }
  1463. .wenzi p {
  1464. display: inline-block;
  1465. }
  1466. .center {
  1467. width: 70%;
  1468. margin: 0 auto;
  1469. }
  1470. .el-form-item {
  1471. width: 50%;
  1472. }
  1473. .el-form-item__label {
  1474. text-align: center;
  1475. }
  1476. .ce {
  1477. width: 70%;
  1478. margin: 0 auto;
  1479. }
  1480. /*.crt-main .textarea /deep/ .el-form-item__label {*/
  1481. /* height: 82px;*/
  1482. /*}*/
  1483. // 控制select为只读的时候显示样式
  1484. .hide-sel {
  1485. .el-input__inner {
  1486. border: 0px;
  1487. }
  1488. .el-icon-arrow-up {
  1489. display: none;
  1490. }
  1491. .el-textarea__inner {
  1492. background-color: #fff !important;
  1493. border: 0;
  1494. }
  1495. .el-date-editor {
  1496. i {
  1497. display: none;
  1498. }
  1499. }
  1500. .is-disabled {
  1501. .el-input__inner:hover {
  1502. background-color: #fff !important;
  1503. border: 0;
  1504. }
  1505. color: #606266;
  1506. .el-input__inner {
  1507. background-color: #fff !important;
  1508. border: 0;
  1509. color: #606266;
  1510. }
  1511. .el-textarea__inner {
  1512. background-color: #fff !important;
  1513. border: 0;
  1514. color: #606266;
  1515. }
  1516. }
  1517. }
  1518. /deep/.ws-info-table .el-form-item .el-form-item__label {
  1519. width: 130px;
  1520. }
  1521. //*号
  1522. .unchangeable {
  1523. position: absolute;
  1524. width: 9px;
  1525. height: 22px;
  1526. font-size: 16px;
  1527. font-family: PingFangSC-Medium, PingFang SC;
  1528. font-weight: 500;
  1529. color: #ff2727;
  1530. line-height: 22px;
  1531. display: inline-block;
  1532. right: 14px;
  1533. }
  1534. /deep/.el-input,
  1535. /deep/.el-date-editor {
  1536. font-size: 13px;
  1537. }
  1538. /deep/.el-textarea {
  1539. width: 900px;
  1540. margin: 0px;
  1541. }
  1542. /deep/el-date-editor--date {
  1543. width: 200px;
  1544. }
  1545. .unchanged {
  1546. position: absolute;
  1547. left: 37px;
  1548. width: 102px;
  1549. height: 14px;
  1550. font-size: 14px;
  1551. font-family: PingFangSC-Regular, PingFang SC;
  1552. font-weight: 400;
  1553. color: #afb5cb;
  1554. line-height: 14px;
  1555. }
  1556. /deep/.el-input--small .el-input__inner {
  1557. height: 32px;
  1558. line-height: 32px;
  1559. }
  1560. // 控制select为只读的时候显示样式
  1561. /deep/.ws-class-table-col {
  1562. height: auto;
  1563. padding: 0px 2px;
  1564. /deep/.el-input__inner {
  1565. padding: 0px 2px;
  1566. }
  1567. }
  1568. /deep/.is-disabled {
  1569. .el-input__prefix,
  1570. .el-input__suffix {
  1571. display: none;
  1572. }
  1573. .el-input__inner {
  1574. background-color: #fff;
  1575. border-color: #fff !important;
  1576. color: #000 !important;
  1577. font-size: 14px;
  1578. cursor: text;
  1579. padding: 0 !important;
  1580. }
  1581. }
  1582. .winseaview-view {
  1583. padding: 0 0 20px;
  1584. }
  1585. .container {
  1586. overflow: scroll;
  1587. height: 93vh;
  1588. }
  1589. </style>