purchaseContractAdd.vue 66 KB

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