purchaseContract.vue 25 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043
  1. <!--采购合同-->
  2. <!--2019年5月30日 20:25:16 by jlx-->
  3. <template>
  4. <div>
  5. <BaseHeaderLayout :leftSpan="8">
  6. <template slot="left">
  7. <ws-button
  8. type="primary"
  9. @click="handleAdd()"
  10. v-hasPermission="`contractManagement.buyContract.buyContractInfo.add`"
  11. >添加</ws-button
  12. >
  13. <ws-button
  14. @click="exportlist()"
  15. v-hasPermission="
  16. `contractManagement.buyContract.buyContractInfo.view`
  17. "
  18. >导出</ws-button
  19. >
  20. </template>
  21. <template slot="right">
  22. <span style="width: 142px; display: inline-block; color: #8890b1"
  23. >状态:</span
  24. >
  25. <ws-select
  26. v-model="searchTypeText"
  27. placeholder=""
  28. class="typeselect"
  29. @change="selecttaskType"
  30. :value="searchType"
  31. >
  32. <ws-option
  33. v-for="item in taskTypeList"
  34. :key="item.value"
  35. :label="item.value"
  36. :value="item.value"
  37. style="color: #8890b1"
  38. />
  39. </ws-select>
  40. <el-date-picker
  41. v-model="value2"
  42. type="daterange"
  43. align="right"
  44. unlink-panels
  45. range-separator="至"
  46. start-placeholder="开始日期"
  47. end-placeholder="结束日期"
  48. :picker-options="pickerOptions"
  49. >
  50. </el-date-picker>
  51. <ws-input
  52. v-model="searchKeyWord"
  53. placeholder="可按照合同编号、买方名称、卖方名称进行查找"
  54. clearable
  55. maxlength="500"
  56. type="input"
  57. class="findValue"
  58. ></ws-input>
  59. <ws-button class="find" type="primary" @click="find()"
  60. ><img
  61. width="16"
  62. height="16"
  63. style="
  64. vertical-align: text-top;
  65. position: relative;
  66. top: 0px;
  67. left: -8px;
  68. "
  69. src="../../../public/img/sousuo.png"
  70. alt=""
  71. /></ws-button>
  72. </template>
  73. </BaseHeaderLayout>
  74. <el-table
  75. class="wenzi"
  76. :data="contractList.records"
  77. style="width: 100%; margin-top: 10px"
  78. height="780"
  79. >
  80. <el-table-column type="index" label="序号">
  81. <template scope="scope">
  82. <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
  83. <span v-else>{{ scope.$index + 1 }}</span>
  84. </template>
  85. </el-table-column>
  86. <el-table-column prop="contractNo" label="合同编号" width="150">
  87. </el-table-column>
  88. <el-table-column prop="goodsName" label="货名" width="80">
  89. </el-table-column>
  90. <el-table-column prop="grade" label="品级" width="80">
  91. <template slot-scope="scope">
  92. <span v-if="scope.row.grade == '一等品'" class="top-grade">{{
  93. scope.row.grade
  94. }}</span>
  95. <span v-if="scope.row.grade == '二等品'" class="second-class">{{
  96. scope.row.grade
  97. }}</span>
  98. <span v-if="scope.row.grade == '三等品'" class="third-class">{{
  99. scope.row.grade
  100. }}</span>
  101. <span v-if="scope.row.grade == '等外'" class="substandard">{{
  102. scope.row.grade
  103. }}</span>
  104. </template>
  105. </el-table-column>
  106. <el-table-column prop="weight" label="重量(吨)"> </el-table-column>
  107. <el-table-column prop="unitContractPrice" label="合同单价(元)">
  108. </el-table-column>
  109. <el-table-column prop="packingMethod" label="包装方式"> </el-table-column>
  110. <el-table-column prop="buyer" label="买方"> </el-table-column>
  111. <el-table-column prop="seller" label="卖方"> </el-table-column>
  112. <el-table-column prop="completedQuantity" label="已完成(吨)">
  113. <template slot-scope="scope">
  114. <span style="color: #5473e8; font-weight: 600">{{
  115. scope.row.completedQuantity
  116. }}</span>
  117. </template>
  118. </el-table-column>
  119. <el-table-column prop="status" label="状态">
  120. <template slot-scope="scope">
  121. <span v-if="scope.row.approveStatus">{{
  122. scope.row.approveStatus
  123. }}</span>
  124. <el-popover
  125. v-else
  126. placement="left"
  127. :width="285"
  128. trigger="click"
  129. visible-arrow="false"
  130. @show="history(scope.row)"
  131. >
  132. <template>
  133. <span slot="reference">
  134. <span
  135. v-if="scope.row.status == '待执行'"
  136. class="executory"
  137. ></span>
  138. <span
  139. v-if="scope.row.status == '执行中'"
  140. class="inExecution"
  141. ></span>
  142. <span v-if="scope.row.status == '已完成'" class="done"></span
  143. >{{ scope.row.status }}
  144. </span>
  145. </template>
  146. <div>
  147. <p style="margin-top: 0; padding-left: 10px">操作历史</p>
  148. <div
  149. v-for="(item, index) in historyList"
  150. :key="index"
  151. class="flex"
  152. >
  153. <div class="vertical-text vertical-text-left">
  154. {{ item.updateDate }}
  155. </div>
  156. <div>
  157. <div class="vertical-circle"></div>
  158. <div
  159. v-if="index != historyList.length - 1"
  160. class="vertical-line"
  161. ></div>
  162. </div>
  163. <div class="vertical-text">
  164. {{ item.operateUser }}<br />{{ item.dealMsg }}
  165. </div>
  166. </div>
  167. </div>
  168. </el-popover>
  169. <img
  170. v-if="!scope.row.approveStatus"
  171. width="17"
  172. height="18"
  173. style="vertical-align: text-top; position: relative; top: -1px"
  174. src="../../../public/img/edit.png"
  175. @click="editClick(scope.row)"
  176. alt=""
  177. />
  178. <!-- <i class="el-icon-edit" @click="editClick(scope.row)"></i> -->
  179. </template>
  180. </el-table-column>
  181. <el-table-column prop="signingDate" label="签订日期"> </el-table-column>
  182. <el-table-column prop="mildewGrain" label="已付款(元)">
  183. </el-table-column>
  184. <el-table-column prop="goodsNames" label="已开发票 (元)">
  185. </el-table-column>
  186. <el-table-column prop="addressUrl" label="附件">
  187. <template slot-scope="scope">
  188. <img
  189. width="18"
  190. height="20"
  191. style="vertical-align: text-top; position: relative; top: -1px"
  192. src="../../../public/img/fujian.png"
  193. @click="fujian(scope.row)"
  194. alt=""
  195. />
  196. <span v-if="scope.row.addressUrlArray != null">
  197. {{
  198. scope.row.addressUrlArray.length == 0
  199. ? ''
  200. : scope.row.addressUrlArray.length
  201. }}
  202. </span>
  203. </template>
  204. </el-table-column>
  205. <el-table-column prop="address" label="操作" width="140">
  206. <template slot-scope="scope">
  207. <img
  208. width="16"
  209. height="16"
  210. style="vertical-align: text-top; margin: 0 6px"
  211. src="../../../public/img/chakan.png"
  212. @click="handleExamine(scope.row)"
  213. v-hasPermission="
  214. `contractManagement.buyContract.buyContractInfo.view`
  215. "
  216. alt=""
  217. />
  218. <div
  219. v-if="
  220. (scope.row.approveStatus != '待决策人审核' &&
  221. scope.row.approveStatus)
  222. "
  223. style="display: inline-block"
  224. >
  225. <img
  226. width="17"
  227. height="16"
  228. style="vertical-align: text-top; margin: 0 6px"
  229. src="../../../public/img/bianji.png"
  230. @click="handleEdit(scope.row)"
  231. v-hasPermission="
  232. `contractManagement.buyContract.buyContractInfo.edit`
  233. "
  234. alt=""
  235. />
  236. </div>
  237. <img
  238. width="16"
  239. height="17"
  240. style="
  241. vertical-align: text-top;
  242. position: relative;
  243. top: -1px;
  244. margin: 0 6px;
  245. "
  246. v-if="scope.row.status != '执行中'&&scope.row.status != '已完成'"
  247. src="../../../public/img/shanchu.png"
  248. v-hasPermission="
  249. `contractManagement.buyContract.buyContractInfo.delete`
  250. "
  251. @click="handleDelete(scope.row)"
  252. alt=""
  253. />
  254. </template>
  255. </el-table-column>
  256. </el-table>
  257. <el-pagination
  258. @size-change="handleSizeChange"
  259. @current-change="handleCurrentChange"
  260. :current-page="currentPage"
  261. :page-size="deptCircularPage.pageSize"
  262. layout="total, sizes, prev, pager, next, jumper"
  263. :total="deptBudgetTotal"
  264. >
  265. </el-pagination>
  266. <WinseaContentModal
  267. v-model="accessoryTFs"
  268. :title="$t('system.noticeCircular.information')"
  269. @on-cancel="handleClose"
  270. >
  271. <ws-upload
  272. ref="upload"
  273. :size-limit="size"
  274. @onChange="onChange"
  275. :comp-id="compId"
  276. :appendix-ids="appendixIdss"
  277. accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar"
  278. />
  279. </WinseaContentModal>
  280. </div>
  281. </template>
  282. <script>
  283. import {
  284. getList,
  285. export1,
  286. editstatus,
  287. billoperatehis,
  288. deletecontract,
  289. editInfo,
  290. } from '@/model/contarct/index'
  291. import { downloadFile } from '@/utils/batchDown'
  292. import Pagination from '@/components/Pagination'
  293. import WsUpload from '@/components/WsUpload'
  294. import { dayjs, EventBus } from 'base-core-lib'
  295. export default {
  296. name: 'viewSpareMoney',
  297. components: {
  298. WsUpload,
  299. Pagination,
  300. },
  301. watch: {
  302. vesselId(val) {
  303. this.getList()
  304. },
  305. isShow(val) {
  306. this.showType = val
  307. },
  308. },
  309. data() {
  310. return {
  311. id: '',
  312. //弹出框
  313. dialogViewSpareMoney: false,
  314. dialogApproveFormVisible: false,
  315. // 船舶类型
  316. monetaryKey: null,
  317. // 表格显示数据
  318. tableDate: [],
  319. size: 10,
  320. // 是否显示
  321. showType: true,
  322. // 年
  323. year: '',
  324. deliver_type: 1,
  325. deptBudgetTotal: 0,
  326. currentPage: 1,
  327. pageSize: 10,
  328. appendixIdsAdd: '',
  329. searchType: 1,
  330. searchTypeText: '未完成',
  331. searchKeyWord: '',
  332. contractType: 2,
  333. goodsType: 1,
  334. startDate: null,
  335. endDate: null,
  336. addressUrls: [],
  337. accesscard: false,
  338. // 提交类型
  339. submitType: true,
  340. deptCircularPage: {},
  341. date: {
  342. year: dayjs().format('YYYY'),
  343. month: dayjs().format('MM'),
  344. },
  345. contractList: [],
  346. deptBudgetList: {},
  347. historyList: [],
  348. appendixIdss: [],
  349. fileList: [],
  350. compId: localStorage.getItem('ws-pf_compId'),
  351. pickerBeginDateBefore: {
  352. disabledDate: (time) => {
  353. return time.getTime() > Date.now()
  354. },
  355. },
  356. accessoryTFs: false,
  357. taskTypeList: [
  358. {
  359. value: '未完成',
  360. type: 1,
  361. },
  362. {
  363. value: '已完成',
  364. type: 2,
  365. },
  366. {
  367. value: '全部合同',
  368. type: '',
  369. },
  370. ],
  371. pickerOptions: {
  372. shortcuts: [
  373. {
  374. text: '本周',
  375. onClick(picker) {
  376. const end = new Date()
  377. const start = new Date()
  378. var thisDay = start.getDay()
  379. var thisDate = start.getDate()
  380. if (thisDay != 0) {
  381. start.setDate(thisDate - thisDay)
  382. }
  383. picker.$emit('pick', [start, end])
  384. },
  385. },
  386. {
  387. text: '本月',
  388. onClick(picker) {
  389. const end = new Date()
  390. const start = new Date()
  391. start.setDate(1)
  392. picker.$emit('pick', [start, end])
  393. },
  394. },
  395. {
  396. text: '本季度',
  397. onClick(picker) {
  398. var oDate = new Date()
  399. var thisYear = oDate.getFullYear()
  400. var thisMonth = oDate.getMonth() + 1
  401. var n = Math.ceil(thisMonth / 3) // 季度
  402. var Month = n * 3 - 1
  403. var start = new Date(thisYear, Month - 2, 1)
  404. var end = new Date()
  405. picker.$emit('pick', [start, end])
  406. },
  407. },
  408. ],
  409. },
  410. value1: '',
  411. value2: '',
  412. }
  413. },
  414. activated() {
  415. //cg.viewBudget
  416. //cg.viewSpareMoney
  417. // this.getVesselData();
  418. this.getList()
  419. this.showType = this.isShow
  420. },
  421. methods: {
  422. onChange() {
  423. this.$refs.upload
  424. .handleSaveBill()
  425. .then(async (response) => {
  426. this.deptBudgetList.addressUrl = response
  427. this.deptBudgetList.id = this.id
  428. this.deptBudgetList.flag = 1
  429. editInfo(this.deptBudgetList)
  430. .toPromise()
  431. .then((response) => {
  432. this.accessoryTFs = false
  433. this.$message.success('上传成功')
  434. this.getList()
  435. })
  436. })
  437. .catch((res) => {
  438. EventBus.$emit('error', (JSON.parse(res) || {}).message)
  439. this.$refs.upload.clearFiles()
  440. })
  441. },
  442. dateFormat(fmt, date) {
  443. let ret
  444. const opt = {
  445. 'Y+': date.getFullYear().toString(), // 年
  446. 'm+': (date.getMonth() + 1).toString(), // 月
  447. 'd+': date.getDate().toString(), // 日
  448. 'H+': date.getHours().toString(), // 时
  449. // "M+": date.getMinutes().toString(), // 分
  450. // "S+": date.getSeconds().toString() // 秒
  451. // 有其他格式化字符需求可以继续添加,必须转化成字符串
  452. }
  453. for (let k in opt) {
  454. ret = new RegExp('(' + k + ')').exec(fmt)
  455. if (ret) {
  456. fmt = fmt.replace(
  457. ret[1],
  458. ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
  459. )
  460. }
  461. }
  462. return fmt
  463. },
  464. handleClose() {
  465. this.dialogViewSpareMoney = false
  466. },
  467. handleSizeChange(val) {
  468. console.log(`每页 ${val} 条`)
  469. this.pageSize = val
  470. this.getList()
  471. },
  472. handleCurrentChange(val) {
  473. this.currentPage = val
  474. console.log(`当前页: ${val}`)
  475. this.getList()
  476. },
  477. getList() {
  478. getList({
  479. compId: localStorage.getItem('ws-pf_compId'),
  480. contractType: this.contractType,
  481. goodsType: this.goodsType,
  482. currentPage: this.currentPage,
  483. pageSize: this.pageSize,
  484. searchType: this.searchType,
  485. searchKeyWord: this.searchKeyWord,
  486. startDate: this.startDate,
  487. endDate: this.endDate,
  488. contrPage: this.contrPage,
  489. })
  490. .toPromise()
  491. .then((response) => {
  492. for (var i = 0; i < response.records.length; i++) {
  493. if(response.records[i].completedQuantity){
  494. response.records[i].completedQuantity=response.records[i].completedQuantity.tofixed(3)
  495. }
  496. if (response.records[i].addressUrl != null) {
  497. if (response.records[i].addressUrl) {
  498. response.records[i].addressUrlArray =
  499. response.records[i].addressUrl.split(',')
  500. }
  501. } else {
  502. response.records[i].addressUrlArray = []
  503. }
  504. }
  505. this.deptCircularPage.currentPage = response.current
  506. this.deptCircularPage.pageSize = response.size
  507. this.deptBudgetTotal = response.total
  508. this.contractList = response
  509. for (var i = 0; i < response.records.length; i++) {
  510. var arr = new Array()
  511. this.addressUrls[i] = new Array()
  512. if (this.contractList.records[i].addressUrl != null) {
  513. arr = this.contractList.records[i].addressUrl.split(',')
  514. this.addressUrls[i] = arr
  515. }
  516. }
  517. })
  518. },
  519. // 上传附件
  520. uploadSuccess(data, files, url) {
  521. console.log(data, files, url)
  522. // this.deptBudgetList.
  523. // this.formData.append('files', files)
  524. // this.feedbackObj.uploadNameAttachment = data.appendixName
  525. // this.feedbackObj.pathUploadAttachment = data.appendixPath
  526. // // this.newAppendixs = files
  527. // this.onChangeFlag = true
  528. },
  529. editClick(row) {
  530. var status = ''
  531. if (row.status == '待执行' || row.status == '已完成') {
  532. status = '执行中'
  533. } else if (row.status == '执行中') {
  534. status = '已完成'
  535. }
  536. this.$confirm(`是否将状态改为${status}`, '提示', {
  537. confirmButtonText: '确定',
  538. cancelButtonText: '取消',
  539. type: 'warning',
  540. })
  541. .then(() => {
  542. editstatus({
  543. id: row.id,
  544. })
  545. .toPromise()
  546. .then((response) => {
  547. this.$notify.success({
  548. title: '成功',
  549. message: '状态修改成功',
  550. })
  551. this.getList()
  552. })
  553. .catch((response) => {
  554. // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
  555. })
  556. })
  557. .catch(() => {
  558. return false
  559. })
  560. },
  561. selecttaskType(e) {
  562. for (var i = 0; i < this.taskTypeList.length; i++) {
  563. if (this.taskTypeList[i].value == e) {
  564. this.searchType = this.taskTypeList[i].type
  565. }
  566. }
  567. },
  568. fujian(row) {
  569. this.id = row.id
  570. this.accessoryTFs = true
  571. this.appendixIdss = row.addressUrl
  572. console.log(this.appendixIdss)
  573. },
  574. handleExamine(row) {
  575. console.log(row)
  576. this.$router.push({
  577. name: 'purchaseContractExamine',
  578. query: {
  579. id: row.id,
  580. status: row.status,
  581. },
  582. })
  583. },
  584. handleAdd() {
  585. this.$router.push({
  586. path: 'purchaseContractAdd',
  587. })
  588. },
  589. handleEdit(row) {
  590. this.$router.push({
  591. name: 'purchaseContractEdit',
  592. query: {
  593. id: row.id,
  594. },
  595. })
  596. },
  597. // 关闭 dialog时 处理文件url 初始化upload组件
  598. history(row) {
  599. console.log(row)
  600. billoperatehis({
  601. id: row.id,
  602. })
  603. .toPromise()
  604. .then((response) => {
  605. this.historyList = response
  606. })
  607. },
  608. find() {
  609. if (this.value2) {
  610. this.startDate = this.dateFormat('YYYY-mm-dd', this.value2[0])
  611. this.endDate = this.dateFormat('YYYY-mm-dd', this.value2[1])
  612. } else {
  613. this.startDate = ''
  614. this.endDate = ''
  615. }
  616. this.currentPage = 1
  617. this.getList()
  618. },
  619. async exportlist() {
  620. const { data } = await export1(
  621. {
  622. compId: localStorage.getItem('ws-pf_compId'),
  623. contractType: this.contractType,
  624. goodsType: this.goodsType,
  625. currentPage: this.currentPage,
  626. pageSize: this.pageSize,
  627. searchType: this.searchType,
  628. searchKeyWord: this.searchKeyWord,
  629. startDate: this.startDate,
  630. endDate: this.endDate,
  631. },
  632. {},
  633. {
  634. responseType: 'blob',
  635. }
  636. ).toPromise()
  637. downloadFile({
  638. res: data,
  639. fileName: `${
  640. this.date.year + (this.date.month ? `-${this.date.month}` : '')
  641. }_采购合同`,
  642. type: 'xls',
  643. })
  644. },
  645. // deletecontract(){},
  646. //删除
  647. handleDelete(row) {
  648. var text = ''
  649. if (row.deliverType == 1) {
  650. text =
  651. '删除该合同将同时永久删除合同对应的临时仓库相关数据,是否确定删除?'
  652. } else {
  653. text = '合同删除后不可恢复,是否继续删除?'
  654. }
  655. this.$confirm(text, '提示', {
  656. confirmButtonText: '确定',
  657. cancelButtonText: '取消',
  658. type: 'warning',
  659. })
  660. .then(() => {
  661. deletecontract({
  662. id: row.id,
  663. })
  664. .toPromise()
  665. .then((response) => {
  666. this.$notify.success({
  667. title: '成功',
  668. message: '删除成功',
  669. })
  670. this.getList()
  671. })
  672. .catch((response) => {})
  673. })
  674. .catch(() => {
  675. return false
  676. })
  677. },
  678. },
  679. }
  680. </script>
  681. <style lang="scss" scoped>
  682. .vertical-text-left {
  683. width: 62px;
  684. text-align: right;
  685. }
  686. .flex {
  687. display: flex;
  688. }
  689. .el-range-editor.el-input__inner {
  690. margin-left: 10px;
  691. }
  692. /deep/.base_header_layout .grid-content.right .find.el-button--primary {
  693. width: 30px;
  694. margin-left: -10px;
  695. border-top-left-radius: 0px;
  696. border-bottom-left-radius: 0px;
  697. }
  698. .el-button--primary {
  699. background-color: #5878e8;
  700. border-color: #5878e8;
  701. }
  702. .el-button--default {
  703. border: 1px solid #5473e8;
  704. color: #5473e8;
  705. }
  706. .warning {
  707. width: 100%;
  708. height: 2px;
  709. background: red;
  710. }
  711. .executory,
  712. .inExecution,
  713. .done {
  714. width: 6px;
  715. height: 6px;
  716. display: inline-block;
  717. border-radius: 50%;
  718. position: relative;
  719. top: -1px;
  720. }
  721. .executory {
  722. background: #ff9f24;
  723. }
  724. .inExecution {
  725. background: #5878e8;
  726. }
  727. .done {
  728. background: #50cad4;
  729. }
  730. .top-grade {
  731. background: linear-gradient(90deg, #5678e9, #7993f6);
  732. color: #fff;
  733. padding: 3px;
  734. border-radius: 2px;
  735. }
  736. .second-class {
  737. background: linear-gradient(90deg, #50cdd9, #82e2ea);
  738. color: #fff;
  739. padding: 3px;
  740. border-radius: 2px;
  741. }
  742. .third-class {
  743. background: linear-gradient(90deg, #ffa735, #ffbf70);
  744. color: #fff;
  745. padding: 3px;
  746. border-radius: 2px;
  747. }
  748. .substandard {
  749. background: linear-gradient(90deg, #b2b4bb, #ced0d5);
  750. color: #fff;
  751. padding: 3px;
  752. border-radius: 2px;
  753. }
  754. .wrap {
  755. width: 400px;
  756. position: absolute;
  757. top: 131px;
  758. left: 794px;
  759. transform-origin: right center;
  760. z-index: 2005;
  761. }
  762. .vertical-line {
  763. height: 64px;
  764. border-left: 2px solid #e9ecf7;
  765. margin-left: 4px;
  766. padding: 0 3px;
  767. // border-image: -webkit-linear-gradient(#00eba7, #08b8e6) 30 30;
  768. // border-image: -moz-linear-gradient(#00eba7, #08b8e6) 30 30;
  769. // border-image: linear-gradient(#00eba7, #08b8e6) 30 30;
  770. }
  771. .el-pagination {
  772. padding: 10px 15px;
  773. margin-bottom: 0;
  774. text-align: center;
  775. }
  776. /deep/.el-pager li.active {
  777. color: #5878e8;
  778. cursor: default;
  779. }
  780. /deep/.el-pager li:hover {
  781. color: #5878e8;
  782. cursor: default;
  783. }
  784. .vertical-circle {
  785. width: 10px;
  786. height: 10px;
  787. border: 2px solid #5878e8;
  788. background-color: #ffffff;
  789. -webkit-border-radius: 100px;
  790. }
  791. .vertical-circle:first-child {
  792. color: red;
  793. }
  794. .vertical-text {
  795. margin: 0 10px;
  796. color: #8890b1;
  797. font-size: 12px;
  798. margin-top: -4px;
  799. }
  800. /deep/.el-table .el-table__header .cell,
  801. /deep/.el-table .el-table__body .cell {
  802. text-align: center;
  803. }
  804. .typeselect {
  805. width: 500px;
  806. }
  807. .padding-xs {
  808. padding: 15px;
  809. text-align: right;
  810. }
  811. .clearfix:after {
  812. content: '';
  813. display: block;
  814. clear: both;
  815. }
  816. .el-table {
  817. font-size: 16px;
  818. }
  819. .taskType {
  820. width: 100%;
  821. background-color: #fff;
  822. margin-top: 2px;
  823. margin-bottom: 10px;
  824. list-style: none;
  825. // padding-bottom: 20px;
  826. li {
  827. float: left;
  828. border: 1px solid #6ea0f3;
  829. border-radius: 5px;
  830. max-width: 190px;
  831. padding: 0 5px;
  832. text-align: center;
  833. margin: 10px 20px;
  834. cursor: pointer;
  835. font-size: 14px;
  836. p {
  837. margin: 8px 0px;
  838. span {
  839. color: #e74c3c;
  840. }
  841. }
  842. }
  843. li:hover {
  844. background-color: #e4eeff;
  845. color: #1d6ced;
  846. }
  847. }
  848. .el-date-editor--date {
  849. margin: 0 10px;
  850. }
  851. .findValue {
  852. margin: 0 10px;
  853. }
  854. /deep/.findValue .el-input__inner {
  855. border-top-right-radius: 0px;
  856. border-bottom-right-radius: 0px;
  857. }
  858. .button-container {
  859. display: flex;
  860. flex-wrap: nowrap;
  861. justify-content: space-between;
  862. align-items: center;
  863. background-color: #fff;
  864. width: 100%;
  865. height: 50px;
  866. padding: 0 10px;
  867. & > div {
  868. margin-left: 10px;
  869. display: flex;
  870. flex-wrap: nowrap;
  871. flex-direction: row;
  872. & > span {
  873. line-height: 50px;
  874. }
  875. }
  876. /deep/.auditFlow-box {
  877. position: unset;
  878. margin-left: 10px;
  879. &/deep/.auditFlow-icon {
  880. width: auto;
  881. padding-right: 30px;
  882. }
  883. &/deep/.auditFlow-main {
  884. position: absolute;
  885. }
  886. }
  887. }
  888. .box-app {
  889. display: inline-block;
  890. float: left;
  891. margin-left: 30px;
  892. line-height: 50px;
  893. }
  894. /deep/.el-dialog {
  895. .el-form-item {
  896. margin-bottom: 0 !important;
  897. .el-input--medium {
  898. textarea {
  899. min-height: 100px !important;
  900. }
  901. }
  902. }
  903. }
  904. .collapse-bottom {
  905. margin-bottom: 20px;
  906. }
  907. .input-main .textarea .el-textarea__inner {
  908. width: 100%;
  909. z-index: 1;
  910. }
  911. /*.crt-main .textarea /deep/ .el-form-item__label {*/
  912. /* height: 82px;*/
  913. /*}*/
  914. // 控制select为只读的时候显示样式
  915. .hide-sel {
  916. .el-input__inner {
  917. border: 0px;
  918. }
  919. .el-icon-arrow-up {
  920. display: none;
  921. }
  922. .el-textarea__inner {
  923. background-color: #fff !important;
  924. border: 0;
  925. }
  926. .el-date-editor {
  927. i {
  928. display: none;
  929. }
  930. }
  931. .is-disabled {
  932. .el-input__inner:hover {
  933. background-color: #fff !important;
  934. border: 0;
  935. }
  936. color: #606266;
  937. .el-input__inner {
  938. background-color: #fff !important;
  939. border: 0;
  940. color: #606266;
  941. }
  942. .el-textarea__inner {
  943. background-color: #fff !important;
  944. border: 0;
  945. color: #606266;
  946. }
  947. }
  948. }
  949. // 控制select为只读的时候显示样式
  950. /deep/.ws-class-table-col {
  951. height: auto;
  952. padding: 0px 2px;
  953. /deep/.el-input__inner {
  954. padding: 0px 2px;
  955. }
  956. }
  957. /deep/.is-disabled {
  958. .el-input__prefix,
  959. .el-input__suffix {
  960. display: none;
  961. }
  962. .el-input__inner {
  963. background-color: #fff;
  964. border-color: #fff !important;
  965. color: #000 !important;
  966. font-size: 14px;
  967. cursor: text;
  968. padding: 0 !important;
  969. }
  970. }
  971. /deep/.typeselect .el-input__inner {
  972. color: #8890b1;
  973. }
  974. </style>