uploadEvidence.vue 11KB

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