sales_shift.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962
  1. <template>
  2. <view class="warp">
  3. <view class="topInfo">
  4. <view class="topInfo-item">
  5. <view class="flex info">
  6. <view class="logo">
  7. <image src="../../../static/img/reject.png" mode="" v-if="list.status == '已驳回'"
  8. style="height: 40rpx;"></image><!-- 驳回 -->
  9. <image src="../../../static/img/tongguo.png" mode="" v-if="list.status == '已通过'"
  10. style="height: 40rpx;"></image><!-- 通过 -->
  11. <image src="../../../static/img/daishenhe.png" mode="" v-if="list.approveStatus "
  12. style="height: 40rpx;"></image><!-- 待审核 -->
  13. </view>
  14. <view class="infoText">{{list.approveStatus?list.approveStatus:list.status}}</view>
  15. </view>
  16. <view class="infoData">{{list.updateDate}}</view>
  17. </view>
  18. </view>
  19. <view class="transaction">
  20. <u-form :model="list" ref="list" class="uForm">
  21. <u-form-item label="任务类型" prop="contractNo" label-width="140">
  22. <view style='text-align:right;width: 100%;color:#000;min-height: 70rpx;line-height: 70rpx;'> 销售转移
  23. </view>
  24. </u-form-item>
  25. </u-form>
  26. <view style='margin-left:20rpx;font-weight:600;'>基本信息</view>
  27. <u-form :model="list" ref="list" class="uForm">
  28. <u-form-item :border-bottom='false' label="原合同编号" prop="contractNo" label-width="140">
  29. <u-input v-model="list.contractNo" input-align="right" placeholder="" disabled />
  30. </u-form-item>
  31. <u-form-item :border-bottom='false' label="原合同提示" prop="pointOut" label-width="140">
  32. <u-input v-model="list.pointOut" input-align="right" placeholder="空" disabled />
  33. </u-form-item>
  34. <u-form-item class='taskNo' :border-bottom='false' label="原出库任务" prop="processNo" label-width="140">
  35. <view style='text-align:right;width: 100%;color:#000;min-height: 70rpx;line-height: 70rpx;'
  36. v-for='item in list.taskNoList'> {{item}}</view>
  37. </u-form-item>
  38. <u-form-item :border-bottom='false' label="新合同/移库编号" prop="goodsName" label-width="220">
  39. <u-input v-model="list.contractNoNew" input-align="right" placeholder="" disabled />
  40. </u-form-item>
  41. <u-form-item :border-bottom='false' label="新合同提示" prop="sendDetailedAddress" label-width="140">
  42. <u-input v-model="list.pointOutNew" input-align="right" placeholder="空" disabled />
  43. </u-form-item>
  44. <u-form-item :border-bottom='false' label="新出库任务" prop="sendDetailedAddress" label-width="140">
  45. <u-input v-model="list.taskNoNew" input-align="right" placeholder="" disabled />
  46. </u-form-item>
  47. <u-form-item :border-bottom='false' label="新运输任务" prop="sendDetailedAddress" label-width="140">
  48. <u-input v-if='list.tranTaskNew' v-model="list.tranTaskNew" input-align="right" placeholder=""
  49. disabled />
  50. <view v-else style='text-align:right;width: 100%;color:#000;min-height: 70rpx;line-height: 70rpx;'>
  51. 他运无运输任务</view>
  52. </u-form-item>
  53. </u-form>
  54. <view v-if='list.tranCarInfoList' style='margin-left:20rpx;font-weight:600;'>车辆信息</view>
  55. <view v-for='(item,index) in list.tranCarInfoList'>
  56. <view style='justify-content: space-between;margin:10rpx 20rpx;align-items: center;' class='flex'>
  57. <view>{{item.carNo}} <text v-if='item.tranCarNo'>({{item.tranCarNo}})</text> </view>
  58. <view class="">{{item.tranTaskOld?item.tranTaskOld:'他运无运输任务'}}</view>
  59. </view>
  60. <view style='align-items: center;justify-content: space-between;margin:10rpx 20rpx;' class='flex '>
  61. <view v-if='item.tranTaskOld'>原运费{{item.tranPriceOld}}{{item.billingMethod==1?'元/吨':'元/车'}}</view>
  62. <view v-else>&nbsp;</view>
  63. <view style='align-items: center;' class='flex ' v-if='list.tranTaskNew'>
  64. 新运费
  65. <u-input :style='!editstatus?"":"border-bottom:1px solid #ccc;"'
  66. style='width:200rpx;margin:0 4rpx;padding-right:10rpx;' v-model="item.tranPrice"
  67. input-align="right" placeholder="" :disabled='!editstatus' />
  68. <text>{{item.billingMethod==1?'元/吨':'元/车'}}</text>
  69. <u-icon @click='downchange(index)' name="arrow-down-fill" color="#000" size="24"></u-icon>
  70. </view>
  71. </view>
  72. </view>
  73. </view>
  74. <flow :auditList="auditList" @status='getStatus'></flow>
  75. <view v-if='show' class="shade">
  76. <view class="wrap">
  77. <view class="alert-top">
  78. <view class="title">
  79. {{title}}
  80. </view>
  81. <u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
  82. </view>
  83. <view style='overflow-y: scroll;height: 732rpx;padding-bottom:102rpx;'>
  84. <view class="u-textarea-style">
  85. <view class="right-bottom">
  86. {{auditMind.length}}/1000个字
  87. </view>
  88. <textarea maxlength="1000" v-model='auditMind' placeholder="请在此输入审核意见" name="" id="" cols="30"
  89. rows="11"></textarea>
  90. </view>
  91. <view style='padding-left:10px;'>
  92. 上传附件
  93. <u-upload :custom-btn='true' class="upload" ref="upload" name='fileName' :form-data="{companyId: pcUserInfo.compId,
  94. modelId: '',
  95. vesselId: ''}" :action="action1" :show-tips="false" :max-size="maxSize" :max-count="9"
  96. :size-type="['compressed']" @on-success="getImgUrl($event)" @on-error="onError"
  97. @on-remove="onRemove" @on-uploaded="isAdd = true"
  98. :limitType="['png', 'jpg', 'jpeg', 'webp', 'gif']" @on-progress="onProgress">
  99. <view slot="addBtn" class="slot-btn u-list-item" hover-class="slot-btn__hover"
  100. hover-stay-time="150">
  101. <image style="width:23px;height:23px;" src="../../../static/img/liangmai/xiangji-2.png"
  102. mode=""></image>
  103. <view>选择图片</view>
  104. </view>
  105. </u-upload>
  106. </view>
  107. </view>
  108. <view @click='close()' class="cancel">取消</view>
  109. <view @click='passSubmit()' class="confirm">确定</view>
  110. </view>
  111. </view>
  112. <u-modal :show-cancel-button='true' confirm-color='#19be6b' title='选择单位' v-model="show1">
  113. <view style='text-align:center;padding:30rpx 20rpx;' class="slot-content">
  114. <u-radio-group active-color="#19be6b" @change='radiochange' v-model="value">
  115. <u-radio name='1' shape="circle">元/吨</u-radio>
  116. <u-radio name='2' shape="circle">元/车</u-radio>
  117. </u-radio-group>
  118. </view>
  119. </u-modal>
  120. <view v-if='list.taskId' style='padding:10px;z-index: 12;' class='flex bottom-btn'>
  121. <u-button v-if='list.approveStatus||isSHowBtn' @click='reject' type="error" class="btn1" hover-class='none'>
  122. 驳回
  123. </u-button>
  124. <u-button v-if='list.approveStatus||isSHowBtn' @click='pass' type="success" class="btn2">通过
  125. </u-button>
  126. </view>
  127. </view>
  128. </template>
  129. <script>
  130. import * as config from '../../../config'
  131. import helper from '@/common/helper.js';
  132. import flow from '@/components/flow.vue';
  133. import {
  134. mapState
  135. } from 'vuex';
  136. export default {
  137. components: {
  138. flow
  139. },
  140. data() {
  141. return {
  142. isSHowBtn: true,
  143. everyCheck: '',
  144. list: {
  145. status: "",
  146. },
  147. id: "",
  148. pcUserInfo: uni.getStorageSync('pcUserInfo'),
  149. action1: config.def().baseUrlNew + 'appendix/api/uploadFiles',
  150. show: false,
  151. editstatus: false,
  152. rejectInfo: "", //审核意见
  153. title: '',
  154. value: '1',
  155. show1: false,
  156. index: 0,
  157. auditMind: '',
  158. auditList: [],
  159. fileUrl: [],
  160. maxSize: 50 * 1024 * 1024,
  161. content: '是否通过该设置?'
  162. }
  163. },
  164. onBackPress(e) {
  165. if (this.everyCheck) {
  166. uni.navigateTo({
  167. url: "/pages/task/my_task"
  168. })
  169. return true;
  170. }
  171. },
  172. onLoad(options) {
  173. this.id = options.id
  174. this.everyCheck = uni.getStorageSync("everyTask")
  175. this.isSHowBtn = options.isShowbtn
  176. this.getList()
  177. },
  178. computed: {
  179. ...mapState(['hasLogin', 'userInfo']),
  180. },
  181. methods: {
  182. getStatus(val) {
  183. if (val == 200) this.getList()
  184. },
  185. auditFile(src) {
  186. uni.downloadFile({
  187. url: src,
  188. success: function(res) {
  189. var filePath = res.tempFilePath;
  190. uni.openDocument({
  191. filePath: filePath,
  192. showMenu: true,
  193. success: function(res) {
  194. console.log('打开文档成功');
  195. }
  196. });
  197. }
  198. });
  199. },
  200. downchange(index) {
  201. if (this.editstatus) {
  202. this.index = index
  203. this.value = this.list.tranCarInfoList[this.index].billingMethod
  204. this.show1 = true
  205. }
  206. },
  207. radiochange(e) {
  208. this.list.tranCarInfoList[this.index].billingMethod = e
  209. console.log(e)
  210. },
  211. getImgUrl(res) {
  212. this.fileUrl.push(res.data.appendixPath)
  213. },
  214. onError(error) {
  215. alert(error)
  216. console.log('------------error-----------')
  217. console.log(error)
  218. },
  219. onProgress(e) {
  220. console.log(e)
  221. },
  222. onRemove(index) {
  223. console.log(index)
  224. this.fileUrl.splice(index, 1)
  225. },
  226. close() {
  227. this.show = false
  228. },
  229. //驳回
  230. rejectSubmit() {
  231. var that = this
  232. var info = that.auditMind
  233. if (that.fileUrl.length > 0) {
  234. info = that.auditMind + "##" + that.fileUrl.toString()
  235. }
  236. that.$api.doRequest('post', '/newWorkflow/api/handle', {
  237. taskId: that.list.taskId,
  238. approved: false,
  239. auditMind: info ? info : "",
  240. needReapply: true,
  241. }).then(res => {
  242. that.$api.msg('驳回成功')
  243. that.show = false
  244. setTimeout(function() {
  245. if (that.everyCheck) {
  246. helper.setAudit(that.list)
  247. } else {
  248. uni.navigateBack()
  249. }
  250. uni.hideLoading()
  251. }, 1000);
  252. })
  253. },
  254. //通过
  255. async passSubmit() {
  256. var that = this
  257. uni.showLoading({
  258. title: '加载中',
  259. mask: true
  260. });
  261. if (this.list.tranCarInfoList) {
  262. for (var i = 0; i < this.list.tranCarInfoList.length; i++) {
  263. this.list.tranCarInfoList[i].tranPrice = Number(this.list.tranCarInfoList[i].tranPrice)
  264. }
  265. }
  266. if (this.editstatus) {
  267. await that.$api.doRequest('post', '/salesTransferInfo/api/editInfo', {
  268. id: this.list.id,
  269. tranCarInfoList: this.list.tranCarInfoList
  270. }).then(res => {})
  271. }
  272. if (this.title == '驳回原因(驳回)') {
  273. this.rejectSubmit()
  274. } else {
  275. var info = that.auditMind
  276. if (that.fileUrl.length > 0) {
  277. info = that.auditMind + "##" + that.fileUrl.toString()
  278. }
  279. await that.$api.doRequest('post', '/newWorkflow/api/handle', {
  280. taskId: that.list.taskId,
  281. approved: true,
  282. auditMind: info ? info : "",
  283. needReapply: true,
  284. }).then(res => {
  285. that.$api.msg('通过成功')
  286. that.show = false
  287. setTimeout(function() {
  288. if (that.everyCheck) {
  289. helper.setAudit(that.list)
  290. } else {
  291. uni.navigateBack()
  292. }
  293. uni.hideLoading()
  294. }, 1000);
  295. })
  296. }
  297. },
  298. pass() {
  299. if (this.list.tranCarInfoList) {
  300. for (var i = 0; i < this.list.tranCarInfoList.length; i++) {
  301. if (!this.list.tranCarInfoList[i].tranPrice) {
  302. this.$api.msg('运费不能为空')
  303. return
  304. }
  305. if (this.list.tranCarInfoList[i].tranPrice < 0) {
  306. this.$api.msg('运费输入错误')
  307. return
  308. }
  309. if (String(this.list.tranCarInfoList[i].tranPrice).indexOf('.') != -1 && String(this.list
  310. .tranCarInfoList[i].tranPrice).split('.')[1].length > 2) {
  311. this.$api.msg('运费输入错误')
  312. return
  313. }
  314. }
  315. }
  316. this.show = true
  317. this.title = '审核意见(通过)'
  318. },
  319. reject() {
  320. if (this.list.tranCarInfoList) {
  321. for (var i = 0; i < this.list.tranCarInfoList.length; i++) {
  322. if (!this.list.tranCarInfoList[i].tranPrice) {
  323. this.$api.msg('运费不能为空')
  324. return
  325. }
  326. if (this.list.tranCarInfoList[i].tranPrice < 0) {
  327. this.$api.msg('运费输入错误')
  328. return
  329. }
  330. if (String(this.list.tranCarInfoList[i].tranPrice).indexOf('.') != -1 && String(this.list
  331. .tranCarInfoList[i].tranPrice).split('.')[1].length > 2) {
  332. this.$api.msg('运费输入错误')
  333. return
  334. }
  335. }
  336. }
  337. this.show = true
  338. this.title = '驳回原因(驳回)'
  339. },
  340. getList() {
  341. var that = this
  342. this.$api.doRequest('get', '/salesTransferInfo/getInfo', {
  343. id: this.id
  344. }).then(res => {
  345. res.data.data.taskNoList = res.data.data.taskNo.split(',')
  346. this.list = res.data.data
  347. // 查流程
  348. this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
  349. businessCode: 'WAREHOUSING-XSZY-APPROVE',
  350. tmpCompId: uni.getStorageSync('pcUserInfo').compId
  351. }).then(res1 => {
  352. this.$api.doRequest('get', '/commonUser/getHis', {
  353. workflowId: res1.data.data[0].id,
  354. businessKey: this.id,
  355. // branch:'zt'
  356. }).then(response => {
  357. uni.hideLoading()
  358. if (response.data.data[0].workflowHistoricTasks.length > 0) {
  359. this.editstatus = false
  360. } else {
  361. this.editstatus = true
  362. }
  363. for (let i = 0; i < response.data.data.length; i++) {
  364. this.$set(response.data.data[i], 'status', 'question')
  365. console.log(response.data.data[i].workflowHistoricTasks, i)
  366. if (response.data.data[i].commonStaffs) {
  367. response.data.data[i].showflow = false
  368. response.data.data[i].operatorTitle = response.data.data[i]
  369. .desc.substring(0, 2)
  370. response.data.data[i].operatorName = response.data.data[i]
  371. .desc
  372. response.data.data[i].staffscontent = '共' + response.data
  373. .data[i].commonStaffs.length + '人,当前审核' + response.data
  374. .data[i].workflowHistoricTasks.length + '人'
  375. if (response.data.data[i].workflowHistoricTasks && response
  376. .data.data[i].workflowHistoricTasks.length > 0) {
  377. if (response.data.data[i].workflowHistoricTasks
  378. .length != response.data.data[i].commonStaffs
  379. .length) {
  380. // response.data.data[i].status='question'
  381. this.$set(response.data.data[i], 'status',
  382. 'question')
  383. } else {
  384. this.$set(response.data.data[i], 'status',
  385. 'success')
  386. // response.data.data[i].status='success'
  387. }
  388. response.data.data[i].workflowlen = response.data.data[
  389. i].workflowHistoricTasks.length
  390. var workflowdata = response.data.data[i]
  391. .workflowHistoricTasks
  392. var staffsdata = response.data.data[i].commonStaffs
  393. for (let q = 0; q < staffsdata.length; q++) {
  394. staffsdata[q].status = false
  395. staffsdata[q].staffTitle = staffsdata[q].staffName
  396. for (let k = 0; k < workflowdata.length; k++) {
  397. if (staffsdata[q].staffId == workflowdata[k]
  398. .operatorId) {
  399. staffsdata[q].status = true
  400. }
  401. }
  402. }
  403. }
  404. response.data.data[i].commonStaffs1 = response.data.data[i]
  405. .commonStaffs
  406. } else {
  407. if (response.data.data[i].workflowHistoricTasks && response
  408. .data.data[i].workflowHistoricTasks.length > 0) {
  409. var len = response.data.data[i].workflowHistoricTasks
  410. .length - 1
  411. if (response.data.data[i].workflowHistoricTasks[len]
  412. .approved) {
  413. this.$set(response.data.data[i], 'status',
  414. 'success')
  415. } else {
  416. this.$set(response.data.data[i], 'status', 'error')
  417. }
  418. response.data.data[i].operatorTitle = response.data
  419. .data[i].workflowHistoricTasks[len].operatorName
  420. .substring(response.data.data[i]
  421. .workflowHistoricTasks[0].operatorName.length -
  422. 2)
  423. response.data.data[i].operatorName = response.data
  424. .data[i].workflowHistoricTasks[len].operatorName
  425. var time = new Date(response.data.data[i]
  426. .workflowHistoricTasks[len].claimTime)
  427. .getTime()
  428. response.data.data[i].updateDate = this.$u.timeFormat(
  429. time, 'mm.dd hh:MM')
  430. if (response.data.data[i].workflowHistoricTasks[len]
  431. .auditMind && response.data.data[i]
  432. .workflowHistoricTasks[len].auditMind.indexOf("##") !=
  433. -1) {
  434. response.data.data[i].auditMind = response.data.data[i]
  435. .workflowHistoricTasks[len].auditMind.split("##")[
  436. 0]
  437. response.data.data[i].fileUrl = response.data.data[i]
  438. .workflowHistoricTasks[len].auditMind.split("##")[
  439. 1].split(",")
  440. } else {
  441. response.data.data[i].auditMind = response.data.data[i]
  442. .workflowHistoricTasks[len].auditMind
  443. }
  444. } else {
  445. this.$set(response.data.data[i], 'status', 'question')
  446. // response.data.data[i].status='question'
  447. if (response.data.data[i].desc == '总经理助理审核') {
  448. response.data.data[i].operatorTitle = '总助'
  449. } else if (response.data.data[i].desc == '杜大光审核') {
  450. response.data.data[i].operatorTitle = '大光'
  451. } else {
  452. response.data.data[i].operatorTitle = response.data
  453. .data[i].desc.substring(0, 2)
  454. }
  455. response.data.data[i].operatorName = response.data
  456. .data[i].desc
  457. var time1 = new Date(response.data.data[i].updateDate)
  458. .getTime()
  459. response.data.data[i].updateDate = this.$u.timeFormat(
  460. time1, 'mm.dd hh:MM')
  461. response.data.data[i].auditMind = ''
  462. }
  463. }
  464. }
  465. console.log(response.data.data)
  466. for (let i = 0; i < response.data.data.length; i++) {
  467. if (response.data.data[i].status == "error") {
  468. this.auditCheck = "error"
  469. break;
  470. } else if (response.data.data[i].status == "question") {
  471. this.auditCheck = "question"
  472. break;
  473. } else {
  474. this.auditCheck = "success"
  475. }
  476. }
  477. this.auditList = response.data.data
  478. var time2 = new Date(this.list.createDate).getTime()
  479. var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
  480. this.auditList.unshift({
  481. operatorTitle: this.list.creater.substring(0, 2),
  482. operatorName: this.list.creater,
  483. updateDate: time3,
  484. auditMind: '',
  485. desc: '发起申请',
  486. showflow: false,
  487. commonStaffs1: null,
  488. commonStaffs: null,
  489. workflowHistoricTasks: [],
  490. status: 'success'
  491. })
  492. for (var i = 0; i < this.list.tranCarInfoList.length; i++) {
  493. if (!this.list.tranCarInfoList[i].billingMethod) {
  494. this.list.tranCarInfoList[i].billingMethod = 1
  495. }
  496. if (this.editstatus) {
  497. if (this.list.tranCarInfoList[i].tranPriceOld && this.list
  498. .tranCarInfoList[i].tranPriceOld != 0) {
  499. this.list.tranCarInfoList[i].tranPrice = this.list
  500. .tranCarInfoList[i].tranPriceOld
  501. }
  502. } else {
  503. this.list.tranCarInfoList[i].tranPrice = Number(this.list
  504. .tranCarInfoList[i].tranPrice).toFixed(2)
  505. }
  506. }
  507. })
  508. })
  509. })
  510. },
  511. }
  512. }
  513. </script>
  514. <style scoped lang="scss">
  515. .transaction {
  516. background-color: #FFFFFF;
  517. margin: 10rpx;
  518. padding-bottom: 10rpx;
  519. border-radius: 20rpx;
  520. }
  521. .uForm {
  522. padding: 0 40rpx;
  523. }
  524. .u-form-item {
  525. padding: 0;
  526. }
  527. .bottom-btn {
  528. width: 100%;
  529. position: fixed;
  530. bottom: 0rpx;
  531. display: flex;
  532. z-index: 2;
  533. background: #fff;
  534. }
  535. .topInfo {
  536. height: 210rpx;
  537. background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
  538. padding: 30rpx;
  539. .topInfo-item {
  540. height: 150rpx;
  541. background-color: #FFFFFF;
  542. border-radius: 20rpx;
  543. padding: 40rpx;
  544. .logo {
  545. width: 40rpx;
  546. height: 40rpx;
  547. margin-top: 8rpx;
  548. }
  549. .infoText {
  550. font-size: 36rpx;
  551. font-weight: 600;
  552. margin-left: 20rpx;
  553. }
  554. .infoData {
  555. color: #878C9C;
  556. font-size: 26rpx;
  557. margin-top: 10rpx;
  558. }
  559. }
  560. }
  561. .submit {
  562. width: 98%;
  563. background: #22C572;
  564. border-radius: 40rpx;
  565. margin-top: 40rpx;
  566. }
  567. .rejectInfoCss {
  568. border: 1px solid #ccc;
  569. border-radius: 10rpx;
  570. background-color: #F9F9FA;
  571. // height: 100px;
  572. overflow-y: auto;
  573. margin: 30rpx;
  574. }
  575. .rejectText {
  576. text-align: center;
  577. }
  578. /deep/.u-input__textarea {
  579. height: 300rpx !important;
  580. }
  581. .text_info {
  582. display: flex;
  583. width: 100%;
  584. justify-content: flex-end;
  585. }
  586. .u-form {
  587. margin-bottom: 20rpx;
  588. background: #fff;
  589. border-radius: 10px;
  590. padding: 30rpx 10px;
  591. .u-form-item {
  592. line-height: 30px;
  593. padding: 0px 0;
  594. font-size: 26rpx;
  595. color: #878C9C;
  596. }
  597. }
  598. .content2 {
  599. background: white;
  600. margin: 20rpx 0;
  601. border-radius: 20rpx;
  602. padding: 20rpx;
  603. .row {
  604. display: flex;
  605. .row-left {
  606. display: flex;
  607. align-items: center;
  608. .item1 {
  609. position: relative;
  610. .item-content {
  611. background: #617AE0;
  612. width: 44px;
  613. height: 44px;
  614. border-radius: 22px;
  615. line-height: 44px;
  616. text-align: center;
  617. font-size: 15px;
  618. color: #fff;
  619. }
  620. .status {
  621. position: absolute;
  622. border-radius: 50%;
  623. padding: 0px 2px;
  624. right: -3px;
  625. bottom: -3px;
  626. background: #fff;
  627. }
  628. .status.success {
  629. border: 1px solid rgb(60, 156, 255);
  630. }
  631. .status.error {
  632. border: 1px solid rgb(245, 108, 108);
  633. }
  634. .status.question {
  635. border: 1px solid #f9ae3d;
  636. }
  637. }
  638. }
  639. .row-right {
  640. width: 80%;
  641. // color: #B0B1B5;
  642. margin-top: 10px;
  643. .right-content {
  644. background: #F2F3F7;
  645. margin-left: 10px;
  646. margin-top: 10px;
  647. padding: 10px;
  648. border-radius: 5px;
  649. color: #B0B1B5;
  650. }
  651. .right-item {
  652. display: flex;
  653. justify-content: space-between;
  654. .time {
  655. color: #999;
  656. }
  657. .item2 {
  658. margin-left: 20rpx;
  659. margin-top: -7px;
  660. .name {
  661. font-size: 28rpx;
  662. font-weight: 800;
  663. margin-bottom: 4px;
  664. }
  665. .status.success {
  666. color: #6CC48C;
  667. }
  668. .status.error {
  669. color: rgb(245, 108, 108);
  670. }
  671. .status.question {
  672. color: #f9ae3d;
  673. }
  674. }
  675. }
  676. .audit_img {
  677. flex-wrap: wrap;
  678. // margin: 0 10rpx;
  679. margin-left: 20rpx;
  680. .url_css {
  681. border: 1px solid #999999;
  682. border-radius: 10px;
  683. margin-top: 10px;
  684. margin-right: 4px;
  685. overflow: hidden;
  686. width: 73px;
  687. height: 73px;
  688. .url_img {
  689. width: 73px;
  690. height: 73px;
  691. // border-radius: 10px;
  692. }
  693. }
  694. }
  695. }
  696. }
  697. .row2 {
  698. display: flex;
  699. .item-content {
  700. background: #22C572;
  701. width: 30px;
  702. height: 30px;
  703. border-radius: 50%;
  704. line-height: 30px;
  705. text-align: center;
  706. font-size: 12px;
  707. color: #fff;
  708. padding: 0 2px;
  709. margin: 0 auto;
  710. }
  711. .status {
  712. position: absolute;
  713. top: 0;
  714. right: 0;
  715. }
  716. }
  717. .row-line {
  718. width: 1px;
  719. height: 30px;
  720. background: #F2F2F2;
  721. margin: 10rpx 50rpx;
  722. }
  723. .audit {
  724. margin-top: 20rpx;
  725. }
  726. }
  727. .warp {
  728. padding-bottom: 252rpx;
  729. }
  730. .shade {
  731. position: fixed;
  732. top: 0;
  733. left: 0;
  734. height: 100%;
  735. width: 100%;
  736. background: rgba(0, 0, 0, 0.4);
  737. z-index: 13;
  738. .wrap {
  739. position: absolute;
  740. left: 0;
  741. top: 0;
  742. right: 0;
  743. bottom: 0;
  744. margin: auto;
  745. background: #fff;
  746. width: calc(100% - 198rpx);
  747. height: 836rpx;
  748. border-radius: 20rpx;
  749. // overflow-y: scroll;
  750. .alert-top {
  751. padding: 33rpx;
  752. display: flex;
  753. justify-content: center;
  754. align-items: center;
  755. position: relative;
  756. }
  757. .title {
  758. font-size: 32rpx;
  759. font-weight: 600;
  760. color: #333333;
  761. }
  762. .close {
  763. position: absolute;
  764. right: 33rpx;
  765. }
  766. }
  767. }
  768. .cancel,
  769. .confirm {
  770. position: absolute;
  771. display: inline-block;
  772. width: 50%;
  773. text-align: center;
  774. bottom: 0;
  775. padding: 10px;
  776. border-top: 1px solid #eee;
  777. font-size: 34rpx;
  778. z-index: 10;
  779. background: #fff;
  780. }
  781. .cancel {
  782. left: 0;
  783. border-right: 1px solid #eee;
  784. color: #AFB3BF;
  785. border-radius: 0 0 0 10px;
  786. }
  787. .confirm {
  788. right: 0;
  789. color: #22C572;
  790. border-radius: 0 0 10px 0;
  791. }
  792. .textarea {
  793. margin: 18rpx auto;
  794. width: 100%;
  795. background: #F9F9FA;
  796. border-radius: 10px;
  797. border: 1px solid #EEEEEE;
  798. font-size: 28rpx;
  799. padding: 10px;
  800. }
  801. .textCss {
  802. display: flex;
  803. justify-content: flex-end;
  804. width: 100%;
  805. text-align: right;
  806. color: #333333;
  807. }
  808. .u-textarea-style {
  809. margin: 20rpx;
  810. background: #F9F9FA;
  811. border-radius: 10px;
  812. border: 1px solid #EEEEEE;
  813. padding: 10rpx 20rpx;
  814. position: relative;
  815. height: 170px;
  816. /deep/.uni-textarea-textarea {
  817. width: 80%;
  818. }
  819. .right-bottom {
  820. position: absolute;
  821. right: 20rpx;
  822. bottom: 20rpx;
  823. color: #AFB3BF;
  824. }
  825. }
  826. /deep/.u-input__textarea {
  827. height: 300rpx !important;
  828. }
  829. /deep/.taskNo .u-form-item--right__content__slot {
  830. flex-direction: column;
  831. }
  832. .bottom-btn {
  833. width: 100%;
  834. position: fixed;
  835. bottom: 0;
  836. display: flex;
  837. z-index: 2;
  838. left: 0;
  839. background-color: #f8f8f8;
  840. flex-direction: column;
  841. .btn1,
  842. .btn2 {
  843. width: 100%;
  844. margin-bottom: 26rpx;
  845. border-radius: 90rpx;
  846. }
  847. .btn1 {
  848. background: white;
  849. color: #00C265;
  850. }
  851. }
  852. /deep/.u-upload .u-list-item {
  853. background: #fff;
  854. border: 1px dashed #ccc;
  855. border-radius: 10rpx;
  856. height: 190rpx;
  857. width: 190rpx;
  858. margin: 10rpx;
  859. text-align: center;
  860. display: flex;
  861. align-items: center;
  862. justify-content: center;
  863. flex-direction: column;
  864. }
  865. /deep/.u-radio-group {
  866. display: flex;
  867. justify-content: space-around;
  868. width: 90%;
  869. margin: 0 auto;
  870. }
  871. /deep/.u-radio:first-child {
  872. margin-left: 60rpx;
  873. }
  874. /deep/.u-radio:last-child {
  875. text-align: right;
  876. // margin-left:auto;
  877. .u-radio__label {
  878. margin-right: 0;
  879. }
  880. }
  881. </style>