uploadEvidence.vue 9.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  1. <template>
  2. <view class="assignrbitrators">
  3. <view class="from">
  4. <uni-forms ref="form" :modelValue="subnitForm" :rules="rules">
  5. <view class="title">案件详情</view>
  6. <view class="box">
  7. <uni-forms-item label="案件编号:" name="caseNum" label-width="120px" required>
  8. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.caseNum"
  9. placeholder="" />
  10. </uni-forms-item>
  11. <uni-forms-item label="申请人:" name="applicantName" label-width="120px" required>
  12. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.applicantName"
  13. placeholder="" />
  14. </uni-forms-item>
  15. <uni-forms-item label="被申请人:" name="respondentName" label-width="120px" required>
  16. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.respondentName"
  17. placeholder="" />
  18. </uni-forms-item>
  19. <uni-forms-item label="借款开始日期:" name="loanStartDate" label-width="120px" required>
  20. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.loanStartDate"
  21. placeholder="" />
  22. </uni-forms-item>
  23. <uni-forms-item label="借款结束日期:" name="loanEndDate" label-width="120px" required>
  24. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.loanEndDate"
  25. placeholder="" />
  26. </uni-forms-item>
  27. <uni-forms-item label="案件标的:" name="caseSubjectAmount" label-width="120px" required>
  28. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.caseSubjectAmount"
  29. placeholder="" />
  30. </uni-forms-item>
  31. <uni-forms-item label="申请人主张欠本金:" name="claimPrinciOwed" label-width="120px" required>
  32. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.claimPrinciOwed"
  33. placeholder="" />
  34. </uni-forms-item>
  35. <uni-forms-item label="申请人主张欠利息:" name="claimInterestOwed" label-width="120px" required>
  36. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.claimInterestOwed"
  37. placeholder="" />
  38. </uni-forms-item>
  39. <uni-forms-item label="申请人主张违约金:" name="claimLiquidDamag" label-width="120px" required>
  40. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.claimLiquidDamag"
  41. placeholder="" />
  42. </uni-forms-item>
  43. <uni-forms-item label="是否有异议需要举证" label-width="120px" name="objectionAddEviden" required>
  44. <uni-data-checkbox class='checkbox' v-model="subnitForm.objectionAddEviden"
  45. :localdata="maintenancetypeArr" @change='uploadEvidenceChange'></uni-data-checkbox>
  46. </uni-forms-item>
  47. <uni-forms-item label="是否需要开庭审理" label-width="120px" name="openCourtHear" required>
  48. <uni-data-checkbox class='checkbox' v-model="subnitForm.openCourtHear"
  49. :localdata="arbitrationmethodArr" @change='arbitrationmethod'></uni-data-checkbox>
  50. </uni-forms-item>
  51. <uni-forms-item label="是否指派仲裁员" label-width="120px" name="pendingAppointArbotrar" required>
  52. <uni-data-checkbox class='checkbox' v-model="subnitForm.pendingAppointArbotrar"
  53. :localdata="uploadEvidence" @change='maintenancetypeChange'></uni-data-checkbox>
  54. </uni-forms-item>
  55. <uni-forms-item label="上传证据" name="headImage" label-width="120px" v-if="caseFlag">
  56. <uni-file-picker ref="files" :auto-upload="false" @select="select" :limit='1' />
  57. </uni-forms-item>
  58. </view>
  59. </uni-forms>
  60. <view class="uni-list" v-if="selectFlag">
  61. <checkbox-group @change="checkboxChange">
  62. <label class="uni-list-cell uni-list-cell-pd" v-for="item in items" :key="item.userId">
  63. <view>
  64. <checkbox :value="item.userId + ''" />
  65. </view>
  66. <view class="main">
  67. <view class="">
  68. 仲裁员姓名:{{item.nickName}}
  69. </view>
  70. <!-- <view class="">
  71. 当前案件数量:{{item.currentCaseNum}}
  72. </view>
  73. <view class="">
  74. 已结案数量:{{item.closedCaseNum}}
  75. </view> -->
  76. <view class="">
  77. 介绍:{{item.remark}}
  78. </view>
  79. </view>
  80. </label>
  81. </checkbox-group>
  82. </view>
  83. <button type="primary" @click="submitImg">确认提交</button>
  84. </view>
  85. </view>
  86. </template>
  87. <script>
  88. import {
  89. respondentDetail,
  90. arbitratorList,
  91. evidenceCrossexami
  92. } from '../../../api/handlecase/index.js'
  93. import {
  94. uploadImage
  95. } from '../../../api/upload.js'
  96. import {
  97. getToken
  98. } from '@/utils/auth'
  99. import moment from 'moment'
  100. const app = getApp()
  101. export default {
  102. data() {
  103. return {
  104. formData: {},
  105. subnitForm: {},
  106. selectFlag: false,
  107. caseFlag: false,
  108. tempFilePaths: null,
  109. rules: {
  110. // 是否有异议需要举证
  111. objectionAddEviden: {
  112. rules: [{
  113. required: true,
  114. errorMessage: '请选择'
  115. }]
  116. },
  117. // 是否需要开庭审理
  118. openCourtHear: {
  119. rules: [{
  120. required: true,
  121. errorMessage: '请选择'
  122. }]
  123. },
  124. // 是否指派仲裁员
  125. pendingAppointArbotrar: {
  126. rules: [{
  127. required: true,
  128. errorMessage: '请选择'
  129. }]
  130. },
  131. },
  132. maintenancetypeArr: [{
  133. text: '是',
  134. value: 1
  135. }, {
  136. text: '否',
  137. value: 0
  138. }, ],
  139. arbitrationmethodArr: [{
  140. text: '是',
  141. value: 1
  142. }, {
  143. text: '否',
  144. value: 0
  145. }],
  146. uploadEvidence: [{
  147. text: '是',
  148. value: 1
  149. }, {
  150. text: '否',
  151. value: 0
  152. }],
  153. items: []
  154. }
  155. },
  156. methods: {
  157. arbitrationmethod() {},
  158. uploadEvidenceChange(val) {
  159. let flag = val.detail.value;
  160. if (flag == 1) {
  161. this.caseFlag = true;
  162. } else if (flag == 0) {
  163. this.caseFlag = false;
  164. }
  165. },
  166. maintenancetypeChange(val) {
  167. let flag = val.detail.value;
  168. if (flag == 1) {
  169. this.selectFlag = true
  170. this.getArbitratorList()
  171. } else {
  172. this.selectFlag = false
  173. }
  174. },
  175. checkboxChange(e) {
  176. let idArr = e.detail.value;
  177. let numberArray = idArr.map(str => parseInt(str));
  178. const result = this.items.filter(item => numberArray.includes(item.userId));
  179. let arbitrators = []
  180. result.forEach(item => {
  181. arbitrators.push({
  182. id: item.userId,
  183. arbitratorName: item.nickName
  184. })
  185. })
  186. this.subnitForm.arbitrators = arbitrators;
  187. console.log(this.subnitForm.arbitrators,"PPPPPPPPPPPPPP");
  188. },
  189. getData(parms) {
  190. respondentDetail(parms).then(res => {
  191. this.formData = res.data
  192. this.formData.loanEndDate = moment(this.formData.loanEndDate).format('YYYY-MM-DD HH:mm:ss');
  193. this.formData.loanStartDate = moment(this.formData.loanStartDate).format(
  194. 'YYYY-MM-DD HH:mm:ss');
  195. this.formData.id = this.formData.id + ''
  196. })
  197. },
  198. // 文件上传
  199. select(e) {
  200. this.tempFilePaths = e.tempFilePaths;
  201. // loading
  202. uni.showLoading({
  203. title: '上传中'
  204. });
  205. uni.uploadFile({
  206. url: getApp().globalData.requestUrl + uploadImage,
  207. filePath: this.tempFilePaths[0],
  208. header: {
  209. Authorization: getToken() || '',
  210. },
  211. formData: {
  212. annexType: 6,
  213. id: this.formData.id
  214. },
  215. name: 'file',
  216. success: (res) => {
  217. let {
  218. data
  219. } = res
  220. uni.showToast({
  221. title: '上传成功',
  222. icon: 'none',
  223. duration: 1000
  224. })
  225. uni.hideLoading();
  226. },
  227. fail: (err) => {
  228. uni.showToast({
  229. title: '上传失败',
  230. icon: 'none',
  231. duration: 1000
  232. })
  233. uni.hideLoading()
  234. }
  235. })
  236. },
  237. // 获取仲裁员列表
  238. getArbitratorList() {
  239. arbitratorList().then(res => {
  240. this.items = res.rows;
  241. })
  242. },
  243. // 提交数据
  244. evidenceCrossexamiFn(parms) {
  245. evidenceCrossexami(parms).then(res => {
  246. uni.showToast({
  247. title: '提交成功',
  248. icon: 'none',
  249. duration: 1000
  250. })
  251. uni.navigateTo({
  252. url: '/pages/handlecase/index'
  253. })
  254. })
  255. },
  256. submitImg() {
  257. this.$refs.form.validate().then(res => {
  258. this.evidenceCrossexamiFn(this.subnitForm)
  259. }).catch(err => {
  260. console.log('表单错误信息:', err);
  261. })
  262. }
  263. },
  264. onLoad(data) {
  265. this.getData(data.id);
  266. this.subnitForm.caseId = Number(data.id);
  267. // this.getArbitratorList()
  268. },
  269. }
  270. </script>
  271. <style lang="scss">
  272. .assignrbitrators {
  273. // text-align: center;
  274. padding: 20rpx;
  275. .box {
  276. background-color: #fff;
  277. padding: 20rpx;
  278. border-radius: 20rpx;
  279. }
  280. .flexd {
  281. padding-top: 20rpx;
  282. .btn {
  283. width: 80%;
  284. font-size: 26rpx;
  285. border-radius: 60rpx;
  286. }
  287. }
  288. .btn {
  289. margin-top: 20rpx;
  290. }
  291. .select-picker {
  292. display: flex;
  293. box-sizing: border-box;
  294. flex-direction: row;
  295. align-items: center;
  296. border: 1px solid #DCDFE6;
  297. border-radius: 8rpx;
  298. width: 100%;
  299. height: 100%;
  300. padding: 0 24rpx;
  301. font-size: 28rpx;
  302. }
  303. .table-content {
  304. background-color: #fff;
  305. padding: 20rpx;
  306. border-radius: 20rpx;
  307. .none {
  308. font-size: 24rpx;
  309. height: 60rpx;
  310. line-height: 60rpx;
  311. }
  312. }
  313. .box {
  314. /deep/.title {
  315. font-size: 28rpx;
  316. height: 60rpx;
  317. line-height: 60rpx;
  318. }
  319. }
  320. .htmltitle {
  321. font-size: 30rpx;
  322. height: 80rpx;
  323. line-height: 80rpx;
  324. display: flex;
  325. justify-content: space-between;
  326. .look {
  327. color: #0D91F9;
  328. }
  329. }
  330. .title {
  331. font-size: 30rpx;
  332. height: 80rpx;
  333. line-height: 80rpx;
  334. }
  335. .adsTitle {
  336. font-size: 30rpx;
  337. }
  338. .multiple {
  339. width: 75%;
  340. height: 72rpx;
  341. line-height: 72rpx;
  342. font-size: 24rpx;
  343. // @include text-overflow($width: 100%)
  344. }
  345. .uni-list {
  346. width: 100%;
  347. margin-top: 20rpx;
  348. .uni-list-cell {
  349. border-radius: 30rpx;
  350. margin-bottom: 10rpx;
  351. display: flex;
  352. align-items: center;
  353. justify-content: flex-start;
  354. background-color: #fff;
  355. .main {
  356. height: 100%;
  357. margin-left: 20rpx;
  358. }
  359. }
  360. }
  361. }
  362. </style>