salesContract.vue 47 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498
  1. <!--销售合同-->
  2. <!--2019年5月30日 20:25:16 by jlx-->
  3. <template>
  4. <div>
  5. <BaseHeaderLayout :leftSpan="4">
  6. <template slot="left">
  7. <ws-button type="primary" @click="handleAdd()" v-hasPermission="
  8. `contractManagement.salesContract.salesContractInfo.add`
  9. ">添加</ws-button>
  10. <ws-button @click="exportlist()" v-hasPermission="
  11. `contractManagement.salesContract.salesContractInfo.view`
  12. ">导出</ws-button>
  13. </template>
  14. <template slot="right">
  15. <span style="width: 205px; display: inline-block; color: #8890b1">创建人:</span>
  16. <ws-select v-model="createPersion" placeholder="可按创建人筛选" class="typeselect" @change="getList"
  17. :value="searchType">
  18. <ws-option key="全部内勤" label="全部内勤" value="" style="color: #8890b1" />
  19. <ws-option v-for="item in persionList" :key="item.staffName" :label="item.staffName" :value="item.staffName"
  20. style="color: #8890b1" />
  21. </ws-select>
  22. <span style="width: 150px; display: inline-block; color: #8890b1;margin-left: 5px;">状态:</span>
  23. <ws-select v-model="searchTypeText" placeholder="" class="typeselect" @change="selecttaskType"
  24. :value="searchType">
  25. <ws-option v-for="item in taskTypeList" :key="item.value" :label="item.value" :value="item.value"
  26. style="color: #8890b1" />
  27. </ws-select>
  28. <el-date-picker v-model="value2" type="daterange" align="right" unlink-panels range-separator="至"
  29. start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
  30. </el-date-picker>
  31. <ws-input v-model="searchKeyWord" placeholder="可按照合同编号、买方名称、卖方名称进行查找" clearable maxlength="500" type="input"
  32. class="findValue" @keyup.enter.native="find()"></ws-input>
  33. <ws-button class="find" type="primary" @click="find()"><img width="16" height="16" style="
  34. vertical-align: text-top;
  35. position: relative;
  36. top: 0px;
  37. left: -8px;
  38. " src="../../../public/img/sousuo.png" alt="" /></ws-button>
  39. </template>
  40. </BaseHeaderLayout>
  41. <el-table class="wenzi" :data="contractList.records" style="width: 100%; margin-top: 10px"
  42. height="calc(100% - 110px)">
  43. <el-table-column type="index" label="序号">
  44. <template scope="scope">
  45. <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
  46. <span v-else>{{ scope.$index + 1 }}</span>
  47. </template>
  48. </el-table-column>
  49. <el-table-column prop="contractNo" label="合同编号" width="150">
  50. </el-table-column>
  51. <el-table-column prop="creator" label="创建人" width="90">
  52. </el-table-column>
  53. <el-table-column prop="goodsName" label="货名" width="80">
  54. </el-table-column>
  55. <!-- <el-table-column prop="grade" label="品级" width="80">
  56. <template slot-scope="scope">
  57. <span v-if="scope.row.grade == '一等品'" class="top-grade">{{
  58. scope.row.grade
  59. }}</span>
  60. <span v-if="scope.row.grade == '二等品'" class="second-class">{{
  61. scope.row.grade
  62. }}</span>
  63. <span v-if="scope.row.grade == '三等品'" class="third-class">{{
  64. scope.row.grade
  65. }}</span>
  66. <span v-if="scope.row.grade == '等外'" class="substandard">{{
  67. scope.row.grade
  68. }}</span>
  69. </template>
  70. </el-table-column> -->
  71. <el-table-column prop="weight" label="重量(吨)"> </el-table-column>
  72. <el-table-column width='150' prop="unitContractPrice" label="合同单价(元)"></el-table-column>
  73. <!-- <el-table-column prop="packingMethod" label="包装方式"> </el-table-column> -->
  74. <el-table-column prop="buyer" label="买方"> </el-table-column>
  75. <el-table-column prop="seller" label="卖方"> </el-table-column>
  76. <el-table-column width='150' prop="completedQuantity" label="已完成(吨)">
  77. <template slot-scope="scope">
  78. <span v-if="scope.row.proportion < 90" style="color: #5473e8; font-weight: 600">{{ scope.row.completedQuantity
  79. }}</span>
  80. <span v-if="scope.row.proportion > 90" style="color: red; font-weight: 600">{{ scope.row.completedQuantity
  81. }}</span>
  82. </template>
  83. </el-table-column>
  84. <el-table-column width='150' prop="status" label="状态">
  85. <template slot-scope="scope">
  86. <div v-if="scope.row.status != '执行中' && scope.row.status != '发运结束' && scope.row.status != '已驳回'">
  87. <!-- <span v-if="scope.row.approveStatus">{{
  88. scope.row.approveStatus
  89. }}</span> -->
  90. <el-select v-if="scope.row.approveStatus" v-model="scope.row.approveStatus" placeholder=""
  91. class="statusselect" @change='selectstatuschange($event, scope.row)' disabled
  92. :value="scope.row.approveStatus">
  93. <el-option label="待决策人审核" value="待决策人审核" style="color: #8890b1" />
  94. </el-select>
  95. <el-select v-else v-model="scope.row.status" placeholder="" class="statusselect"
  96. @change='selectstatuschange($event, scope.row)'
  97. :disabled="scope.row.status == '已完成' || scope.row.status == '已结算' || scope.row.status == '已驳回'"
  98. :value="scope.row.status">
  99. <el-option label="执行中" value="执行中" style="color: #8890b1" />
  100. </el-select>
  101. <!-- <el-popover v-else placement="left" :width="285" trigger="click" visible-arrow="false"
  102. @show="history(scope.row)">
  103. <template>
  104. <span slot="reference">
  105. <span v-if="scope.row.status == '待执行'" class="executory"></span>
  106. <span v-if="scope.row.status == '执行中'" class="inExecution"></span>
  107. <span v-if="scope.row.status == '已完成'" class="done"></span>{{ scope.row.status }}
  108. </span>
  109. </template>
  110. <div>
  111. <p style="margin-top: 0; padding-left: 10px">操作历史</p>
  112. <div v-for="(item, index) in historyList" class="flex">
  113. <div class="vertical-text vertical-text-left">
  114. {{ item.updateDate }}
  115. </div>
  116. <div>
  117. <div class="vertical-circle"></div>
  118. <div v-if="index != historyList.length - 1" class="vertical-line"></div>
  119. </div>
  120. <div class="vertical-text">
  121. {{ item.operateUser }}<br />{{ item.dealMsg }}
  122. </div>
  123. </div>
  124. </div>
  125. </el-popover>
  126. <img v-if="!scope.row.approveStatus" width="17" height="18"
  127. style="vertical-align: text-top; position: relative; top: -1px;" src="../../../public/img/edit.png"
  128. @click="editClick(scope.row)" alt="" /> -->
  129. </div>
  130. <div v-else-if="scope.row.status == '已驳回'">
  131. 已驳回
  132. </div>
  133. <div v-else>
  134. <!-- {{scope.row.status}} -->
  135. <el-select v-model="scope.row.status" placeholder="" class="statusselect"
  136. @change='selectstatuschange($event, scope.row)' :value="scope.row.status">
  137. <el-option v-for="item in statusList" :key="item.value" :label="item.value" :value="item.value"
  138. style="color: #8890b1" />
  139. </el-select>
  140. </div>
  141. </template>
  142. </el-table-column>
  143. <el-table-column width='120' prop="signingDate" label="签订日期"> </el-table-column>
  144. <el-table-column width='120' prop="contractRevenue" label="粮款收入"> </el-table-column>
  145. <el-table-column width='120' prop="expenses" label="费用支出"> </el-table-column>
  146. <el-table-column width='120' prop="mildewGrain" label="未回款(元)">
  147. <template slot-scope="scope">
  148. <!-- <span style='color:red;'
  149. v-if='scope.row.datestatus && scope.row.invoiced > scope.row.contractRevenue'>{{ scope.row.mildewGrain }}</span>
  150. <span v-else>{{ scope.row.mildewGrain }}</span> -->
  151. <div class="inputChenge">
  152. <!-- readonly -->
  153. <el-input v-model="scope.row.mildewGrain" v-if="scope.row.identification == 'true'"></el-input>
  154. <div v-if="scope.row.identification == 'false'" class="inputs">
  155. {{ scope.row.mildewGrain }}
  156. </div>
  157. </div>
  158. <img width="17" height="18" style="vertical-align: text-top; position: relative; top: -1px"
  159. src="../../../public/img/edit.png" @click="whether(scope.row,1)"
  160. v-if="scope.row.identification == 'false'" alt="" />
  161. <i class="el-icon-check" style="line-height: 29px; margin-left: 10px"
  162. v-if="scope.row.identification == 'true'" @click="varietyClick(scope.row,1)"></i>
  163. </template>
  164. </el-table-column>
  165. <el-table-column prop="amountEdPayable" label="已付运费"> </el-table-column>
  166. <!-- <el-table-column prop="statementUrl" label="结算单">
  167. <template slot-scope="scope">
  168. <img width="18" height="20" style="vertical-align: text-top; position: relative; top: -1px"
  169. src="../../../public/img/fujian.png" @click="settlement(scope.row)" alt="" />
  170. <span v-if="scope.row.statementUrl != null">
  171. {{ scope.row.statementUrl ? scope.row.statementUrl.split(",").length : "" }}
  172. </span>
  173. </template>
  174. </el-table-column> -->
  175. <el-table-column width='120' prop="goodsNames" label="已开发票 (元)">
  176. <template slot-scope="scope">
  177. <div v-if="!scope.row.editgoodsNames" >
  178. <!-- <span @dblclick="scope.row.editgoodsNames=true">{{ scope.row.invoiced?scope.row.invoiced:0 }}</span> -->
  179. <div class="inputChenge">
  180. <!-- readonly -->
  181. <el-input v-model="scope.row.invoiced" v-if="scope.row.identification1 == 'true'"></el-input>
  182. <div v-if="scope.row.identification1 == 'false'" class="inputs">
  183. {{ scope.row.invoiced }}
  184. </div>
  185. </div>
  186. <!-- <img width="18" height="20" style="vertical-align: text-top; position: relative; top: -1px"
  187. src="../../../public/img/fujian.png" @click="invoiceUploade(scope.row)" alt="" />
  188. <span v-if="scope.row.invoiceUrl != null">
  189. {{ scope.row.invoiceUrl ? scope.row.invoiceUrl.split(",").length : "" }}
  190. </span> -->
  191. <img width="17" height="18" style="vertical-align: text-top; position: relative; top: -1px"
  192. src="../../../public/img/edit.png" @click="whether(scope.row,2)"
  193. v-if="scope.row.identification1 == 'false'" alt="" />
  194. <i class="el-icon-check" style="line-height: 29px; margin-left: 10px"
  195. v-if="scope.row.identification1 == 'true'" @click="varietyClick(scope.row,2)"></i>
  196. </div>
  197. <div v-if="scope.row.editgoodsNames">
  198. <el-input class="goodsnamesinput" v-model="scope.row.invoiced" placeholder="输入累计开票金额" ></el-input>
  199. <i @click="submitgoodsNames(scope.row)" class="el-icon-check"></i>
  200. </div>
  201. </template>
  202. </el-table-column>
  203. <el-table-column prop="addressUrl" label="附件">
  204. <template slot-scope="scope">
  205. <img width="18" height="20" style="vertical-align: text-top; position: relative; top: -1px"
  206. src="../../../public/img/fujian.png" @click="fujian(scope.row)" alt="" />
  207. <span v-if="scope.row.addressUrlArray != null">{{scope.row.addressUrlArray.length == 0? '' : scope.row.addressUrlArray.length}}</span>
  208. <!-- <i @click="fujian(scope.row)" class="el-icon-paperclip iconCss"></i> -->
  209. </template>
  210. </el-table-column>
  211. <el-table-column prop="address" label="操作" width="150">
  212. <template slot-scope="scope">
  213. <!-- <img width="16" height="17" style="
  214. vertical-align: text-top;
  215. position: relative;
  216. top: -1px;
  217. margin: 0 6px; "
  218. v-hasPermission="
  219. `contractManagement.nonContract.nonContractInfo.view`" src="../../../public/img/daichu.png"
  220. @click="handlecost(scope.row)" alt="" /> -->
  221. <el-link v-hasPermission="
  222. `contractManagement.salesContract.salesContractInfo.view`
  223. " target="_blank" type="primary" :underline="false" @click="handleExamine(scope.row)"
  224. >查看</el-link>
  225. <el-divider direction="vertical"></el-divider>
  226. <el-link v-hasPermission="
  227. `contractManagement.salesContract.salesContractInfo.edit`
  228. " target="_blank" type="primary" :underline="false" @click="handleEdit(scope.row)"
  229. :disabled="scope.row.approveStatus">编辑</el-link>
  230. <el-dropdown>
  231. <span class="btn_css">•••</span>
  232. <el-dropdown-menu slot="dropdown">
  233. <el-dropdown-item v-hasPermission="
  234. `contractManagement.salesContract.salesContractInfo.delete`
  235. "><el-link target="_blank" type="primary" :underline="false" @click="handleDelete(scope.row)"
  236. :disabled="scope.row.approveStatus">删除</el-link>
  237. </el-dropdown-item>
  238. <el-dropdown-item v-hasPermission="
  239. `contractManagement.salesContract.salesContractInfo.edit`
  240. ">
  241. <el-link target="_blank" type="primary" :underline="false" @click="withdraw(scope.row)"
  242. :disabled="scope.row.approveStatus && scope.row.approveStatus=='发起人撤回'">撤回</el-link>
  243. </el-dropdown-item>
  244. <el-dropdown-item v-hasPermission="
  245. `contractManagement.salesContract.salesContractInfo.view`
  246. ">
  247. <el-link target="_blank" type="primary" :underline="false" @click="handleaudit(scope.row)"
  248. :disabled="!scope.row.taskId">审核</el-link>
  249. </el-dropdown-item>
  250. <el-dropdown-item v-hasPermission="`contractManagement.buyContract.buyContractInfo.view`">
  251. <el-link target="_blank" type="primary" :underline="false" @click="handlecost(scope.row)">费用详情</el-link>
  252. </el-dropdown-item>
  253. <el-dropdown-item v-hasPermission="`contractManagement.buyContract.buyContractInfo.view`">
  254. <el-link target="_blank" type="primary" :underline="false" @click="handleprofit(scope.row)">利润详情</el-link>
  255. </el-dropdown-item>
  256. <el-dropdown-item v-hasPermission="`contractManagement.buyContract.buyContractInfo.view`">
  257. <el-link :disabled="scope.row.amountEdPayable=='他运'" target="_blank" type="primary" :underline="false" @click="handletransport(scope.row)">运输详情</el-link>
  258. </el-dropdown-item>
  259. </el-dropdown-menu>
  260. </el-dropdown>
  261. <!-- <el-button @click="handleExamine(scope.row)" v-hasPermission="
  262. `contractManagement.salesContract.salesContractInfo.view`
  263. " type="primary">查看</el-button>
  264. <div v-if="
  265. (scope.row.approveStatus != '待决策人审核' &&
  266. !scope.row.approveStatus || scope.row.approveStatus == '发起人撤回')
  267. " style="display: inline-block">
  268. <el-button @click="handleEdit(scope.row)" v-hasPermission="
  269. `contractManagement.salesContract.salesContractInfo.edit`
  270. " type="primary">编辑</el-button>
  271. </div>
  272. <div v-if="scope.row.status == '待执行' && !scope.row.approveStatus || scope.row.status == '已驳回'" style="display: inline-block">
  273. <el-button v-hasPermission="
  274. `contractManagement.salesContract.salesContractInfo.delete`
  275. " @click="handleDelete(scope.row)" type="primary">删除</el-button>
  276. </div>
  277. <div v-if="scope.row.approveStatus && scope.row.approveStatus!='发起人撤回'" style="display: inline-block">
  278. <el-button @click="withdraw(scope.row)" v-hasPermission="
  279. `contractManagement.salesContract.salesContractInfo.edit`
  280. " type="primary">撤回</el-button>
  281. </div>
  282. <div v-if="scope.row.taskId" style="display: inline-block">
  283. <el-button @click="handleaudit(scope.row)" v-hasPermission="
  284. `contractManagement.salesContract.salesContractInfo.view`
  285. " type="primary">审核</el-button>
  286. </div> -->
  287. </template>
  288. </el-table-column>
  289. </el-table>
  290. <el-pagination :page-sizes="[10, 30, 50, 100, 500, 1000, 9999]" @size-change="handleSizeChange"
  291. @current-change="handleCurrentChange" :current-page="currentPage" :page-size="deptCircularPage.pageSize"
  292. layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal">
  293. </el-pagination>
  294. <WinseaContentModal v-model="accessoryTFs" :title="$t('system.noticeCircular.information')"
  295. @on-cancel="handleClose">
  296. <div v-if="applstatus">
  297. <ws-upload ref="upload" :size-limit="size" @onChange="onChange" :comp-id="compId" :appendix-ids="appendixIdss"
  298. accept=".jpg, .jpeg, .png, .pdf, .doc, .docx, .zip, .rar"
  299. v-hasPermission="`contractManagement.buyContract.buyContractInfo.appl`" />
  300. </div>
  301. <ws-upload v-else ref="upload" :comp-id="compId" :appendix-ids="appendixIdss" :editable="false"
  302. accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar" />
  303. </WinseaContentModal>
  304. <!-- 结算单 -->
  305. <WinseaContentModal v-model="countMoney" title="结算单信息" @on-cancel="handleClose">
  306. <div v-if="jiesuanstatus">
  307. <ws-upload ref="upload" :size-limit="size" @onChange="onChange1" :comp-id="compId" :appendix-ids="appendixIdss"
  308. accept=".jpg, .jpeg, .png, .pdf, .doc, .docx, .zip, .rar"
  309. v-hasPermission="`contractManagement.salesContract.salesContractInfo.jiedan`" />
  310. </div>
  311. <ws-upload v-else ref="upload" :comp-id="compId" :appendix-ids="appendixIdss" :editable="false"
  312. accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar" />
  313. </WinseaContentModal>
  314. <!-- 上传已开发票 -->
  315. <WinseaContentModal v-model="invoiceSwitch" title="发票信息" @on-cancel="handleClose">
  316. <div v-if="fapiaostatus">
  317. <ws-upload ref="upload" :size-limit="size" @onChange="onChange2" :comp-id="compId" :appendix-ids="appendixIdss"
  318. accept=".jpg, .jpeg, .png, .pdf, .doc, .docx, .zip, .rar"
  319. v-hasPermission="`contractManagement.salesContract.salesContractInfo.fapiao`" />
  320. </div>
  321. <ws-upload v-else ref="upload" :comp-id="compId" :appendix-ids="appendixIdss" :editable="false"
  322. accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar" />
  323. </WinseaContentModal>
  324. <el-dialog title="合同完成" :visible.sync="show" width="30%" :before-close="handleClose">
  325. <span>该合同为随行就市的销售合同,结算单价确认后不可修改。</span>
  326. <div style="margin-top:10px;">
  327. <el-form class="priceform" ref="form">
  328. <el-form-item label="结算单价">
  329. <el-input v-model="currectPrice"></el-input>
  330. 元/吨
  331. </el-form-item>
  332. </el-form>
  333. </div>
  334. <span slot="footer" class="dialog-footer">
  335. <el-button @click="handleClose1">取 消</el-button>
  336. <el-button type="primary" @click="selectstatuschange1()">确 定</el-button>
  337. </span>
  338. </el-dialog>
  339. </div>
  340. </template>
  341. <script>
  342. import {
  343. getList,
  344. export1,
  345. editstatus,
  346. billoperatehis,
  347. deletecontract,
  348. editInfo,
  349. getsettlementprice,
  350. getstafffind,
  351. sponsorWithdraw,
  352. editProcessInfo
  353. } from '@/model/contarct/index'
  354. import {
  355. downloadFile
  356. } from '@/utils/batchDown'
  357. import {
  358. gettask,
  359. } from '@/model/outboundManagement/index'
  360. import { hasPermission } from '../../utils/getHasPermission'
  361. import Pagination from '@/components/Pagination'
  362. import WsUpload from '@/components/WsUpload'
  363. import {
  364. dayjs,
  365. fmoney,
  366. EventBus
  367. } from 'base-core-lib'
  368. export default {
  369. name: 'viewSpareMoney',
  370. components: {
  371. WsUpload,
  372. Pagination,
  373. },
  374. watch: {
  375. vesselId(val) {
  376. this.getList()
  377. },
  378. isShow(val) {
  379. this.showType = val
  380. },
  381. },
  382. data() {
  383. return {
  384. id: '',
  385. //弹出框
  386. dialogViewSpareMoney: false,
  387. dialogApproveFormVisible: false,
  388. currectPrice: '',
  389. currectdata: {},
  390. // 船舶类型
  391. monetaryKey: null,
  392. // 表格显示数据
  393. tableDate: [],
  394. size: 10,
  395. // 是否显示
  396. showType: true,
  397. // 年
  398. year: '',
  399. currectstatus: '',
  400. deptBudgetTotal: 0,
  401. currentPage: 1,
  402. pageSize: 20,
  403. appendixIdsAdd: '',
  404. searchType: 1,
  405. searchTypeText: '未完成',
  406. searchKeyWord: '',
  407. contractType: 1,
  408. goodsType: 1,
  409. startDate: null,
  410. endDate: null,
  411. // 提交类型
  412. submitType: true,
  413. contractForm: {},
  414. categoryIndex: 0,
  415. rulesVendor: {},
  416. showFlag:false,
  417. appendixIdss: [],
  418. compId: localStorage.getItem('ws-pf_compId'),
  419. deptCircularPage: {},
  420. date: {
  421. year: dayjs().format('YYYY'),
  422. month: dayjs().format('MM'),
  423. },
  424. contractList: [],
  425. deptBudgetList: {},
  426. historyList: [],
  427. pickerBeginDateBefore: {
  428. disabledDate: (time) => {
  429. return time.getTime() > Date.now()
  430. },
  431. },
  432. statusList: [{
  433. value: '发运结束',
  434. }, { value: '已完成', }],
  435. accessoryTFs: false,//附件
  436. countMoney: false,//结算单
  437. invoiceSwitch: false,//发票上传
  438. accesscard: false,
  439. accessurl: '',
  440. fileList: [],
  441. taskTypeList: [{
  442. value: '未完成',
  443. type: 1,
  444. },
  445. {
  446. value: '已完成',
  447. type: 2,
  448. },
  449. {
  450. value: '未回款',
  451. type: 3,
  452. },
  453. {
  454. value: '审批中',
  455. type: 4,
  456. },
  457. {
  458. value: '全部合同',
  459. type: '',
  460. },
  461. ],
  462. addressUrls: [],
  463. pickerOptions: {
  464. shortcuts: [{
  465. text: '本周',
  466. onClick(picker) {
  467. const end = new Date()
  468. const start = new Date()
  469. var thisDay = start.getDay()
  470. var thisDate = start.getDate()
  471. if (thisDay != 0) {
  472. start.setDate(thisDate - thisDay)
  473. }
  474. picker.$emit('pick', [start, end])
  475. },
  476. },
  477. {
  478. text: '本月',
  479. onClick(picker) {
  480. const end = new Date()
  481. const start = new Date()
  482. start.setDate(1)
  483. picker.$emit('pick', [start, end])
  484. },
  485. },
  486. {
  487. text: '本季度',
  488. onClick(picker) {
  489. var oDate = new Date()
  490. var thisYear = oDate.getFullYear()
  491. var thisMonth = oDate.getMonth() + 1
  492. var n = Math.ceil(thisMonth / 3) // 季度
  493. var Month = n * 3 - 1
  494. var start = new Date(thisYear, Month - 2, 1)
  495. var end = new Date()
  496. picker.$emit('pick', [start, end])
  497. },
  498. },
  499. ],
  500. },
  501. currentDate: 0,
  502. applstatus: false,
  503. jiesuanstatus: false,
  504. fapiaostatus: false,
  505. value1: '',
  506. value2: '',
  507. createPersion: '',//创建人
  508. persionList: [],
  509. }
  510. },
  511. activated() {
  512. this.applstatus = hasPermission('contractManagement.buyContract.buyContractInfo.appl')
  513. this.jiesuanstatus = hasPermission('contractManagement.salesContract.salesContractInfo.jiedan')
  514. this.fapiaostatus = hasPermission('contractManagement.salesContract.salesContractInfo.fapiao')
  515. //cg.viewBudget
  516. //cg.viewSpareMoney
  517. // this.getVesselData();
  518. this.getList()
  519. this.showType = this.isShow
  520. this.persionXiaLa()
  521. },
  522. methods: {
  523. handleaudit(row) {
  524. this.$router.push({
  525. name: 'salesContractAudit',
  526. query: {
  527. id: row.id,
  528. status: row.status,
  529. },
  530. })
  531. },
  532. submitgoodsNames(row){
  533. console.log(row)
  534. if(row.invoiced<0){
  535. this.$notify.warning({
  536. title: '警告',
  537. message: '发票金额输入错误',
  538. })
  539. }
  540. var dataobj={}
  541. dataobj.id=row.id
  542. dataobj.flag=3
  543. dataobj.invoiced=row.invoiced
  544. editInfo(dataobj)
  545. .toPromise()
  546. .then((response) => {
  547. this.$message.success('修改成功')
  548. this.getList()
  549. })
  550. },
  551. persionXiaLa() {
  552. getstafffind({
  553. roles: 'b96299bb5dcf461e916b72b64c6943b0'
  554. })
  555. .toPromise()
  556. .then((response) => {
  557. this.persionList = response
  558. })
  559. },
  560. handlecost(row) {
  561. this.$router.push({
  562. name: 'salesContractcost',
  563. query: {
  564. id: row.id,
  565. contractNo: row.contractNo,
  566. status: row.status,
  567. buyer: row.buyer
  568. },
  569. })
  570. },
  571. whether(row, flag) {
  572. if (flag == 1) {
  573. row.identification = 'true'
  574. } else {
  575. row.identification1 = 'true'
  576. }
  577. },
  578. //修改未回款、开票金额
  579. varietyClick(row, flag) {
  580. var title = ''
  581. var data = {}
  582. if(flag==1){
  583. title = '确定要修改未回款金额?'
  584. data = {
  585. mildewGrain: row.mildewGrain,
  586. id: row.id
  587. }
  588. }
  589. else{
  590. title = '确定要修改已开发票金额?'
  591. data = {
  592. goodsName: row.invoiced,
  593. id: row.id
  594. }
  595. }
  596. this.$confirm(title, {
  597. confirmButtonText: '确定',
  598. cancelButtonText: '取消',
  599. type: 'warning',
  600. })
  601. .then(() => {
  602. editProcessInfo(data)
  603. .toPromise()
  604. .then((response) => {
  605. this.$notify.success({
  606. title: '成功',
  607. message: '修改成功',
  608. })
  609. this.getList()
  610. })
  611. .catch(() => {
  612. return false
  613. })
  614. })
  615. },
  616. handleClose1() {
  617. this.show = false
  618. this.getList()
  619. },
  620. async selectstatuschange1() {
  621. var data = { id: this.currectdata.id, settlementPrice: this.currectPrice }
  622. editstatus(data)
  623. .toPromise()
  624. .then((response) => {
  625. this.$notify.success({
  626. title: '成功',
  627. message: '状态修改成功',
  628. })
  629. this.show = false
  630. this.getList()
  631. })
  632. .catch((response) => {
  633. // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
  634. })
  635. },
  636. async selectstatuschange(e, row) {
  637. var data = {}
  638. var text = `是否将状态改为${e}`
  639. if (e == '发运结束') {
  640. data = { id: row.id, endFlag: 1 }
  641. } else if (e == '已完成' && row.priceType != '随行就市') {
  642. var response = await getsettlementprice({ contractNo: row.contractNo }).toPromise()
  643. data = { id: row.id, settlementPrice: response }
  644. text = `合同单价${response}元/吨,确定合同已完成?`
  645. } else {
  646. data = { id: row.id }
  647. }
  648. if (e == '执行中') {
  649. if (row.addressUrl == '') {
  650. this.$notify.error({
  651. title: '失败',
  652. message: '修改失败,未上传双章合同附件',
  653. })
  654. row.status = row.currectstatus
  655. return
  656. }
  657. console.log(row)
  658. }
  659. if (e != '已完成' || e == '已完成' && row.priceType != '随行就市') {
  660. this.$confirm(text, {
  661. confirmButtonText: '确定',
  662. cancelButtonText: '取消',
  663. type: 'warning',
  664. })
  665. .then(() => {
  666. editstatus(data)
  667. .toPromise()
  668. .then((response) => {
  669. this.$notify.success({
  670. title: '成功',
  671. message: '状态修改成功',
  672. })
  673. this.getList()
  674. })
  675. .catch((response) => {
  676. row.status = row.currectstatus
  677. // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
  678. })
  679. })
  680. .catch(() => {
  681. row.status = row.currectstatus
  682. return false
  683. })
  684. } else {
  685. this.currectdata = row
  686. this.currectPrice = response
  687. this.show = true
  688. }
  689. },
  690. onChange() {
  691. this.$refs.upload
  692. .handleSaveBill()
  693. .then(async (response) => {
  694. this.deptBudgetList.addressUrl = response
  695. this.deptBudgetList.id = this.id
  696. this.deptBudgetList.flag = 1
  697. editInfo(this.deptBudgetList)
  698. .toPromise()
  699. .then((response) => {
  700. this.accessoryTFs = false
  701. this.$message.success('上传成功')
  702. this.getList()
  703. })
  704. })
  705. .catch((res) => {
  706. EventBus.$emit('error', (JSON.parse(res) || {}).message)
  707. this.$refs.upload.clearFiles()
  708. })
  709. },
  710. onChange1() {
  711. this.$refs.upload
  712. .handleSaveBill()
  713. .then(async (response) => {
  714. this.deptBudgetList.statementUrl = response
  715. this.deptBudgetList.id = this.id
  716. this.deptBudgetList.flag = 1
  717. editInfo(this.deptBudgetList)
  718. .toPromise()
  719. .then((response) => {
  720. this.countMoney = false
  721. this.$message.success('上传成功')
  722. this.getList()
  723. })
  724. })
  725. .catch((res) => {
  726. EventBus.$emit('error', (JSON.parse(res) || {}).message)
  727. this.$refs.upload.clearFiles()
  728. })
  729. },
  730. onChange2() {
  731. this.$refs.upload
  732. .handleSaveBill()
  733. .then(async (response) => {
  734. this.deptBudgetList.invoiceUrl = response
  735. this.deptBudgetList.id = this.id
  736. this.deptBudgetList.flag = 1
  737. editInfo(this.deptBudgetList)
  738. .toPromise()
  739. .then((response) => {
  740. this.invoiceSwitch = false
  741. this.$message.success('上传成功')
  742. this.getList()
  743. })
  744. })
  745. .catch((res) => {
  746. EventBus.$emit('error', (JSON.parse(res) || {}).message)
  747. this.$refs.upload.clearFiles()
  748. })
  749. },
  750. dateFormat(fmt, date) {
  751. let ret
  752. const opt = {
  753. 'Y+': date.getFullYear().toString(), // 年
  754. 'm+': (date.getMonth() + 1).toString(), // 月
  755. 'd+': date.getDate().toString(), // 日
  756. 'H+': date.getHours().toString(), // 时
  757. // "M+": date.getMinutes().toString(), // 分
  758. // "S+": date.getSeconds().toString() // 秒
  759. // 有其他格式化字符需求可以继续添加,必须转化成字符串
  760. }
  761. for (let k in opt) {
  762. ret = new RegExp('(' + k + ')').exec(fmt)
  763. if (ret) {
  764. fmt = fmt.replace(
  765. ret[1],
  766. ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
  767. )
  768. }
  769. }
  770. return fmt
  771. },
  772. handleClose() {
  773. this.dialogViewSpareMoney = false
  774. },
  775. handleClose1() {
  776. this.accesscard = false
  777. },
  778. handleSizeChange(val) {
  779. console.log(`每页 ${val} 条`)
  780. this.pageSize = val
  781. this.getList()
  782. },
  783. handleCurrentChange(val) {
  784. this.currentPage = val
  785. console.log(`当前页: ${val}`)
  786. this.getList()
  787. },
  788. getList() {
  789. getList({
  790. compId: localStorage.getItem('ws-pf_compId'),
  791. contractType: this.contractType,
  792. goodsType: this.goodsType,
  793. currentPage: this.currentPage,
  794. pageSize: this.pageSize,
  795. searchType: this.searchType,
  796. searchKeyWord: this.searchKeyWord,
  797. startDate: this.startDate,
  798. endDate: this.endDate,
  799. contrPage: this.contrPage,
  800. creator:this.createPersion
  801. })
  802. .toPromise()
  803. .then((response) => {
  804. var date = new Date().getTime()
  805. for (var i = 0; i < response.records.length; i++) {
  806. response.records[i].identification = 'false'
  807. response.records[i].identification1 = 'false'
  808. if (response.records[i].status) {
  809. response.records[i].currectstatus = response.records[i].status
  810. }
  811. response.records[i].editgoodsNames=false
  812. if (response.records[i].collectionDeadline) {
  813. response.records[i].date = new Date(response.records[i].collectionDeadline).getTime()
  814. console.log(response.records[i].date, parseInt(date) + (5 * 24 * 3600 * 1000))
  815. if (response.records[i].date < parseInt(date) + (5 * 24 * 3600 * 1000)) {
  816. response.records[i].datestatus = true
  817. }
  818. } else {
  819. response.records[i].datestatus = false
  820. }
  821. if (response.records[i].creator == localStorage.getItem('ws-pf_staffName')) {
  822. response.records[i].showFlag = true
  823. }
  824. if (response.records[i].completedQuantity) {
  825. response.records[i].completedQuantity = response.records[i].completedQuantity.toFixed(3)
  826. }
  827. if (response.records[i].addressUrl != null) {
  828. if (response.records[i].addressUrl != '') {
  829. response.records[i].addressUrlArray =
  830. response.records[i].addressUrl.split(',')
  831. }
  832. } else {
  833. response.records[i].addressUrlArray = []
  834. }
  835. if (response.records[i].imperfectGrain != null) {
  836. response.records[i].proportion =
  837. Math.floor(
  838. (response.records[i].imperfectGrain /
  839. response.records[i].weight) *
  840. 10000
  841. ) / 100
  842. } else {
  843. response.records[i].proportion = 0
  844. }
  845. }
  846. this.deptCircularPage.currentPage = response.current
  847. this.deptCircularPage.pageSize = response.size
  848. this.deptBudgetTotal = response.total
  849. this.contractList = response
  850. for (var i = 0; i < response.records.length; i++) {
  851. var arr = new Array()
  852. this.addressUrls[i] = new Array()
  853. if (this.contractList.records[i].addressUrl != null) {
  854. arr = this.contractList.records[i].addressUrl.split(',')
  855. this.addressUrls[i] = arr
  856. }
  857. }
  858. })
  859. },
  860. // 上传附件
  861. uploadSuccess(data, files, url) {
  862. console.log(data, files, url)
  863. // this.deptBudgetList.
  864. // this.formData.append('files', files)
  865. // this.feedbackObj.uploadNameAttachment = data.appendixName
  866. // this.feedbackObj.pathUploadAttachment = data.appendixPath
  867. // // this.newAppendixs = files
  868. // this.onChangeFlag = true
  869. },
  870. editClick(row) {
  871. var status = ''
  872. if (row.status == '待执行' || row.status == '已完成') {
  873. status = '执行中'
  874. } else if (row.status == '执行中' || row.status == '发运结束') {
  875. status = '已完成'
  876. }
  877. //cancelButtonClass: "btn-custom-cancel"
  878. this.$confirm(`是否将状态改为${status}`, {
  879. confirmButtonText: '确定',
  880. cancelButtonText: '取消',
  881. type: 'warning',
  882. })
  883. .then(() => {
  884. editstatus({
  885. id: row.id,
  886. })
  887. .toPromise()
  888. .then((response) => {
  889. this.$notify.success({
  890. title: '成功',
  891. message: '状态修改成功',
  892. })
  893. this.getList()
  894. })
  895. .catch((response) => {
  896. // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
  897. })
  898. })
  899. .catch(() => {
  900. return false
  901. })
  902. },
  903. selecttaskType(e) {
  904. for (var i = 0; i < this.taskTypeList.length; i++) {
  905. if (this.taskTypeList[i].value == e) {
  906. this.searchType = this.taskTypeList[i].type
  907. this.find()
  908. }
  909. }
  910. },
  911. // receiveAttachmentPath
  912. fujian(row) {
  913. this.id = row.id
  914. this.accessoryTFs = true
  915. this.appendixIdss = row.addressUrl
  916. console.log(this.appendixIdss)
  917. },
  918. settlement(row) {
  919. this.id = row.id
  920. this.countMoney = true
  921. this.appendixIdss = row.statementUrl
  922. },
  923. invoiceUploade(row) {
  924. this.id = row.id
  925. this.invoiceSwitch = true
  926. this.appendixIdss = row.invoiceUrl
  927. },
  928. handleExamine(row) {
  929. this.$router.push({
  930. name: 'salesContractExamine',
  931. query: {
  932. id: row.id,
  933. },
  934. })
  935. },
  936. withdraw(row) {
  937. this.$confirm(`撤回成功后,可再次提交,确定撤回该合同吗?`, {
  938. cancelButtonText: '取消',
  939. confirmButtonText: '确定',
  940. type: 'warning',
  941. }).then(() => {
  942. sponsorWithdraw({
  943. workflowId: row.workflowId,
  944. businessKey: row.id,
  945. }).toPromise()
  946. .then((response) => {
  947. this.$message.success('撤回成功')
  948. this.getList()
  949. })
  950. })
  951. },
  952. handleAdd() {
  953. this.$router.push({
  954. path: 'salesContractAdd',
  955. })
  956. },
  957. handleEdit(row) {
  958. this.$router.push({
  959. name: 'salesContractEdit',
  960. query: {
  961. id: row.id,
  962. },
  963. })
  964. },
  965. handlecost(row) {
  966. this.$router.push({
  967. name: 'expensemanagementdetails',
  968. query: {
  969. contractNo: row.contractNo,
  970. },
  971. })
  972. },
  973. handleprofit(row) {
  974. this.$router.push({
  975. name: 'contractprofits',
  976. query: {
  977. contractNo: row.contractNo,
  978. },
  979. })
  980. },
  981. handletransport(row) {
  982. gettask({contractNo:row.contractNo,compId:localStorage.getItem('ws-pf_compId')}).toPromise().then((response) => {
  983. if(!response||response==0){
  984. this.$message({
  985. message: '联系内勤创建运输任务',
  986. type: 'warning',
  987. });
  988. }else{
  989. this.$router.push({
  990. name: 'autoSettlementList',
  991. query: {
  992. contractNo: row.contractNo,
  993. },
  994. })
  995. }
  996. })
  997. },
  998. // 关闭 dialog时 处理文件url 初始化upload组件
  999. handleCloe() {
  1000. this.dialogViewSpareMoney = false
  1001. },
  1002. history(row) {
  1003. billoperatehis({
  1004. id: row.id,
  1005. })
  1006. .toPromise()
  1007. .then((response) => {
  1008. this.historyList = response
  1009. })
  1010. },
  1011. find() {
  1012. if (this.value2) {
  1013. this.startDate = this.dateFormat('YYYY-mm-dd', this.value2[0])
  1014. this.endDate = this.dateFormat('YYYY-mm-dd', this.value2[1])
  1015. } else {
  1016. this.startDate = ''
  1017. this.endDate = ''
  1018. }
  1019. this.currentPage = 1
  1020. this.getList()
  1021. },
  1022. async exportlist() {
  1023. const {
  1024. data
  1025. } = await export1({
  1026. compId: localStorage.getItem('ws-pf_compId'),
  1027. contractType: this.contractType,
  1028. goodsType: this.goodsType,
  1029. currentPage: this.currentPage,
  1030. pageSize: this.pageSize,
  1031. searchType: this.searchType,
  1032. searchKeyWord: this.searchKeyWord,
  1033. startDate: this.startDate,
  1034. endDate: this.endDate,
  1035. }, {}, {
  1036. responseType: 'blob',
  1037. }).toPromise()
  1038. downloadFile({
  1039. res: data,
  1040. fileName: `${this.date.year + (this.date.month ? `-${this.date.month}` : '')
  1041. }_销售合同`,
  1042. type: 'xls',
  1043. })
  1044. },
  1045. handleDelete(row) {
  1046. var handleDelete = ' '
  1047. if (row.handleDelete == '') { }
  1048. this.$confirm(
  1049. `删除该合同将同时永久删除合同对应的临时仓库相关数据,是否确定删除?`, {
  1050. cancelButtonText: '取消',
  1051. confirmButtonText: '确定',
  1052. type: 'warning',
  1053. }
  1054. )
  1055. .then(() => {
  1056. deletecontract({
  1057. id: row.id,
  1058. })
  1059. .toPromise()
  1060. .then((response) => {
  1061. this.$notify.success({
  1062. title: '成功',
  1063. message: '删除成功',
  1064. })
  1065. this.getList()
  1066. })
  1067. .catch((response) => {
  1068. // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
  1069. })
  1070. })
  1071. .catch(() => {
  1072. return false
  1073. })
  1074. },
  1075. },
  1076. }
  1077. </script>
  1078. <style lang="scss" scoped>
  1079. .vertical-text-left {
  1080. width: 62px;
  1081. text-align: right;
  1082. }
  1083. .flex {
  1084. display: flex;
  1085. }
  1086. .inputChenge {
  1087. width: 100%;
  1088. display: inline-flex;
  1089. margin-left: -28%;
  1090. }
  1091. .inputs {
  1092. margin: 0 auto;
  1093. }
  1094. .el-range-editor.el-input__inner {
  1095. margin-left: 10px;
  1096. }
  1097. /deep/.base_header_layout .grid-content.right .find.el-button--primary {
  1098. width: 30px;
  1099. margin-left: -10px;
  1100. border-top-left-radius: 0px;
  1101. border-bottom-left-radius: 0px;
  1102. }
  1103. .el-button--primary {
  1104. background-color: #5878e8;
  1105. border-color: #5878e8;
  1106. }
  1107. .el-button--default {
  1108. border: 1px solid #5473e8;
  1109. color: #5473e8;
  1110. }
  1111. .warning {
  1112. width: 100%;
  1113. height: 2px;
  1114. background: red;
  1115. }
  1116. .executory,
  1117. .inExecution,
  1118. .done {
  1119. width: 6px;
  1120. height: 6px;
  1121. display: inline-block;
  1122. border-radius: 50%;
  1123. position: relative;
  1124. top: -1px;
  1125. }
  1126. .executory {
  1127. background: #ff9f24;
  1128. }
  1129. .inExecution {
  1130. background: #5878e8;
  1131. }
  1132. .done {
  1133. background: #50cad4;
  1134. }
  1135. // .top-grade {
  1136. // background: linear-gradient(90deg, #5678e9, #7993f6);
  1137. // color: #fff;
  1138. // padding: 3px;
  1139. // border-radius: 2px;
  1140. // }
  1141. // .second-class {
  1142. // background: linear-gradient(90deg, #50cdd9, #82e2ea);
  1143. // color: #fff;
  1144. // padding: 3px;
  1145. // border-radius: 2px;
  1146. // }
  1147. // .third-class {
  1148. // background: linear-gradient(90deg, #ffa735, #ffbf70);
  1149. // color: #fff;
  1150. // padding: 3px;
  1151. // border-radius: 2px;
  1152. // }
  1153. // .substandard {
  1154. // background: linear-gradient(90deg, #b2b4bb, #ced0d5);
  1155. // color: #fff;
  1156. // padding: 3px;
  1157. // border-radius: 2px;
  1158. // }
  1159. .wrap {
  1160. width: 400px;
  1161. position: absolute;
  1162. top: 131px;
  1163. left: 794px;
  1164. transform-origin: right center;
  1165. z-index: 2005;
  1166. }
  1167. .vertical-line {
  1168. height: 100px;
  1169. border-left: 2px solid #e9ecf7;
  1170. margin-left: 4px;
  1171. padding: 0 3px;
  1172. // border-image: -webkit-linear-gradient(#00eba7, #08b8e6) 30 30;
  1173. // border-image: -moz-linear-gradient(#00eba7, #08b8e6) 30 30;
  1174. // border-image: linear-gradient(#00eba7, #08b8e6) 30 30;
  1175. }
  1176. .el-pagination {
  1177. padding: 10px 15px;
  1178. margin-bottom: 0;
  1179. text-align: center;
  1180. }
  1181. /deep/.el-pager li.active {
  1182. color: #5878e8;
  1183. cursor: default;
  1184. }
  1185. /deep/.el-pager li:hover {
  1186. color: #5878e8;
  1187. cursor: default;
  1188. }
  1189. .vertical-circle {
  1190. width: 10px;
  1191. height: 10px;
  1192. border: 2px solid #5878e8;
  1193. background-color: #ffffff;
  1194. -webkit-border-radius: 100px;
  1195. }
  1196. .vertical-circle:first-child {
  1197. color: red;
  1198. }
  1199. .vertical-text {
  1200. margin: 0 10px;
  1201. color: #8890b1;
  1202. font-size: 12px;
  1203. margin-top: -4px;
  1204. }
  1205. /deep/.el-table .el-table__header .cell,
  1206. /deep/.el-table .el-table__body .cell {
  1207. text-align: center;
  1208. }
  1209. .typeselect {
  1210. width: 500px;
  1211. }
  1212. // .padding-xs {
  1213. // padding: 15px;
  1214. // text-align: right;
  1215. // }
  1216. .clearfix:after {
  1217. content: '';
  1218. display: block;
  1219. clear: both;
  1220. }
  1221. .el-table {
  1222. font-size: 16px;
  1223. }
  1224. .taskType {
  1225. width: 100%;
  1226. background-color: #fff;
  1227. margin-top: 2px;
  1228. margin-bottom: 10px;
  1229. list-style: none;
  1230. // padding-bottom: 20px;
  1231. li {
  1232. float: left;
  1233. border: 1px solid #6ea0f3;
  1234. border-radius: 5px;
  1235. max-width: 190px;
  1236. padding: 0 5px;
  1237. text-align: center;
  1238. margin: 10px 20px;
  1239. cursor: pointer;
  1240. font-size: 14px;
  1241. p {
  1242. margin: 8px 0px;
  1243. span {
  1244. color: #e74c3c;
  1245. }
  1246. }
  1247. }
  1248. li:hover {
  1249. background-color: #e4eeff;
  1250. color: #1d6ced;
  1251. }
  1252. }
  1253. .el-date-editor--date {
  1254. margin: 0 10px;
  1255. }
  1256. .findValue {
  1257. margin: 0 10px;
  1258. }
  1259. /deep/.findValue .el-input__inner {
  1260. border-top-right-radius: 0px;
  1261. border-bottom-right-radius: 0px;
  1262. }
  1263. // .button-container {
  1264. // display: flex;
  1265. // flex-wrap: nowrap;
  1266. // justify-content: space-between;
  1267. // align-items: center;
  1268. // background-color: #fff;
  1269. // width: 100%;
  1270. // height: 50px;
  1271. // padding: 0 10px;
  1272. // &>div {
  1273. // margin-left: 10px;
  1274. // display: flex;
  1275. // flex-wrap: nowrap;
  1276. // flex-direction: row;
  1277. // &>span {
  1278. // line-height: 50px;
  1279. // }
  1280. // }
  1281. // /deep/.auditFlow-box {
  1282. // position: unset;
  1283. // margin-left: 10px;
  1284. // &/deep/.auditFlow-icon {
  1285. // width: auto;
  1286. // padding-right: 30px;
  1287. // }
  1288. // &/deep/.auditFlow-main {
  1289. // position: absolute;
  1290. // }
  1291. // }
  1292. // }
  1293. // .box-app {
  1294. // display: inline-block;
  1295. // float: left;
  1296. // margin-left: 30px;
  1297. // line-height: 50px;
  1298. // }
  1299. /deep/.el-dialog {
  1300. .el-form-item {
  1301. margin-bottom: 0 !important;
  1302. .el-input--medium {
  1303. textarea {
  1304. min-height: 100px !important;
  1305. }
  1306. }
  1307. }
  1308. }
  1309. .collapse-bottom {
  1310. margin-bottom: 20px;
  1311. }
  1312. .input-main .textarea .el-textarea__inner {
  1313. width: 100%;
  1314. z-index: 1;
  1315. }
  1316. .priceform .el-input {
  1317. width: 79%;
  1318. }
  1319. /*.crt-main .textarea /deep/ .el-form-item__label {*/
  1320. /* height: 82px;*/
  1321. /*}*/
  1322. // 控制select为只读的时候显示样式
  1323. // .hide-sel {
  1324. // .el-input__inner {
  1325. // border: 0px;
  1326. // }
  1327. // .el-icon-arrow-up {
  1328. // display: none;
  1329. // }
  1330. // .el-textarea__inner {
  1331. // background-color: #fff !important;
  1332. // border: 0;
  1333. // }
  1334. // .el-date-editor {
  1335. // i {
  1336. // display: none;
  1337. // }
  1338. // }
  1339. // .is-disabled {
  1340. // .el-input__inner:hover {
  1341. // background-color: #fff !important;
  1342. // border: 0;
  1343. // }
  1344. // color: #606266;
  1345. // .el-input__inner {
  1346. // background-color: #fff !important;
  1347. // border: 0;
  1348. // color: #606266;
  1349. // }
  1350. // .el-textarea__inner {
  1351. // background-color: #fff !important;
  1352. // border: 0;
  1353. // color: #606266;
  1354. // }
  1355. // }
  1356. // }
  1357. // 控制select为只读的时候显示样式
  1358. /deep/.ws-class-table-col {
  1359. height: auto;
  1360. padding: 0px 2px;
  1361. /deep/.el-input__inner {
  1362. padding: 0px 2px;
  1363. }
  1364. }
  1365. /deep/.is-disabled {
  1366. .el-input__prefix,
  1367. .el-input__suffix {
  1368. display: none;
  1369. }
  1370. .el-input__inner {
  1371. background-color: #fff;
  1372. border-color: #fff !important;
  1373. color: #000 !important;
  1374. font-size: 14px;
  1375. cursor: text;
  1376. padding: 0 !important;
  1377. }
  1378. .el-message-box {
  1379. width: 440px;
  1380. height: 160px;
  1381. background: #ffffff;
  1382. box-shadow: 0px 2px 31px 0px rgba(66, 75, 112, 0.23);
  1383. border-radius: 4px;
  1384. }
  1385. /deep/.el-message-box__message p {
  1386. width: 351px;
  1387. height: 20px;
  1388. font-size: 14px;
  1389. font-weight: 400;
  1390. color: #191919;
  1391. line-height: 20px;
  1392. }
  1393. .el-message-box__title {
  1394. width: 440px;
  1395. height: 160px;
  1396. background: #ffffff;
  1397. box-shadow: 0px 2px 31px 0px rgba(66, 75, 112, 0.23);
  1398. border-radius: 4px;
  1399. }
  1400. }
  1401. /deep/.typeselect .el-input__inner {
  1402. color: #8890b1;
  1403. }
  1404. /deep/.statusselect .el-input__inner {
  1405. color: #8890b1;
  1406. width: 100%;
  1407. }
  1408. .el-table .cell .goodsnamesinput.el-input
  1409. {
  1410. width:80%;
  1411. }
  1412. .btn_css {
  1413. color: #409eff;
  1414. cursor: pointer;
  1415. position:relative;
  1416. top:2px;
  1417. }
  1418. </style>