salesContract.vue 23 KB

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