salesContractAdd.vue 65 KB

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