uploadEvidence.vue 9.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380
  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.value">
  63. <view>
  64. <checkbox :value="item.id + ''" />
  65. </view>
  66. <view class="main">
  67. <view class="">
  68. 仲裁员姓名:{{item.arbitratorName}}
  69. </view>
  70. <view class="">
  71. 当前案件数量:{{item.currentCaseNum}}
  72. </view>
  73. <view class="">
  74. 已结案数量:{{item.closedCaseNum}}
  75. </view>
  76. <view class="">
  77. 专业分类:{{item.professiClassifi}}
  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.id));
  179. let arbitrators = []
  180. result.forEach(item => {
  181. arbitrators.push({
  182. id: item.id,
  183. arbitratorName: item.arbitratorName
  184. })
  185. })
  186. this.subnitForm.arbitrators = arbitrators;
  187. },
  188. getData(parms) {
  189. respondentDetail(parms).then(res => {
  190. this.formData = res.data
  191. this.formData.loanEndDate = moment(this.formData.loanEndDate).format('YYYY-MM-DD HH:mm:ss');
  192. this.formData.loanStartDate = moment(this.formData.loanStartDate).format(
  193. 'YYYY-MM-DD HH:mm:ss');
  194. this.formData.id = this.formData.id + ''
  195. })
  196. },
  197. // 文件上传
  198. select(e) {
  199. this.tempFilePaths = e.tempFilePaths;
  200. // loading
  201. uni.showLoading({
  202. title: '上传中'
  203. });
  204. uni.uploadFile({
  205. url: getApp().globalData.requestUrl + uploadImage,
  206. filePath: this.tempFilePaths[0],
  207. header: {
  208. Authorization: getToken() || '',
  209. },
  210. formData: {
  211. annexType: 6,
  212. id: this.formData.id
  213. },
  214. name: 'file',
  215. success: (res) => {
  216. let {
  217. data
  218. } = res
  219. uni.showToast({
  220. title: '上传成功',
  221. icon: 'none',
  222. duration: 1000
  223. })
  224. uni.hideLoading();
  225. },
  226. fail: (err) => {
  227. uni.showToast({
  228. title: '上传失败',
  229. icon: 'none',
  230. duration: 1000
  231. })
  232. uni.hideLoading()
  233. }
  234. })
  235. },
  236. // 获取仲裁员列表
  237. getArbitratorList() {
  238. arbitratorList().then(res => {
  239. this.items = res.rows;
  240. })
  241. },
  242. // 提交数据
  243. evidenceCrossexamiFn(parms) {
  244. evidenceCrossexami(parms).then(res => {
  245. uni.showToast({
  246. title: '提交成功',
  247. icon: 'none',
  248. duration: 1000
  249. })
  250. uni.navigateTo({
  251. url: '/pages/handlecase/index'
  252. })
  253. })
  254. },
  255. submitImg() {
  256. this.$refs.form.validate().then(res => {
  257. this.evidenceCrossexamiFn(this.subnitForm)
  258. }).catch(err => {
  259. console.log('表单错误信息:', err);
  260. })
  261. }
  262. },
  263. onLoad(data) {
  264. this.getData(data.id);
  265. this.subnitForm.caseId = Number(data.id);
  266. // this.getArbitratorList()
  267. },
  268. }
  269. </script>
  270. <style lang="scss">
  271. .assignrbitrators {
  272. // text-align: center;
  273. padding: 20rpx;
  274. .box {
  275. background-color: #fff;
  276. padding: 20rpx;
  277. border-radius: 20rpx;
  278. }
  279. .flexd {
  280. padding-top: 20rpx;
  281. .btn {
  282. width: 80%;
  283. font-size: 26rpx;
  284. border-radius: 60rpx;
  285. }
  286. }
  287. .btn {
  288. margin-top: 20rpx;
  289. }
  290. .select-picker {
  291. display: flex;
  292. box-sizing: border-box;
  293. flex-direction: row;
  294. align-items: center;
  295. border: 1px solid #DCDFE6;
  296. border-radius: 8rpx;
  297. width: 100%;
  298. height: 100%;
  299. padding: 0 24rpx;
  300. font-size: 28rpx;
  301. }
  302. .table-content {
  303. background-color: #fff;
  304. padding: 20rpx;
  305. border-radius: 20rpx;
  306. .none {
  307. font-size: 24rpx;
  308. height: 60rpx;
  309. line-height: 60rpx;
  310. }
  311. }
  312. .box {
  313. /deep/.title {
  314. font-size: 28rpx;
  315. height: 60rpx;
  316. line-height: 60rpx;
  317. }
  318. }
  319. .htmltitle {
  320. font-size: 30rpx;
  321. height: 80rpx;
  322. line-height: 80rpx;
  323. display: flex;
  324. justify-content: space-between;
  325. .look {
  326. color: #0D91F9;
  327. }
  328. }
  329. .title {
  330. font-size: 30rpx;
  331. height: 80rpx;
  332. line-height: 80rpx;
  333. }
  334. .adsTitle {
  335. font-size: 30rpx;
  336. }
  337. .multiple {
  338. width: 75%;
  339. height: 72rpx;
  340. line-height: 72rpx;
  341. font-size: 24rpx;
  342. // @include text-overflow($width: 100%)
  343. }
  344. .uni-list {
  345. width: 100%;
  346. margin-top: 20rpx;
  347. .uni-list-cell {
  348. border-radius: 30rpx;
  349. margin-bottom: 10rpx;
  350. display: flex;
  351. align-items: center;
  352. justify-content: flex-start;
  353. background-color: #fff;
  354. .main {
  355. height: 100%;
  356. margin-left: 20rpx;
  357. }
  358. }
  359. }
  360. }
  361. </style>