uploadEvidence.vue 21KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660
  1. <template>
  2. <view>
  3. <view>
  4. </view> <uni-section title=" ">
  5. <!-- 选项卡 -->
  6. <view>
  7. <uni-segmented-control :current="current" :values="itemsT" :style-type="styleType"
  8. :active-color="activeColor" @clickItem="onClickItem" />
  9. </view>
  10. <!-- 选项卡内容 -->
  11. <view class="conent">
  12. <view v-show="current === 0">
  13. <view class="assignrbitrators">
  14. <view class="from">
  15. <uni-forms ref="form" :modelValue="subnitForm" :rules="rules">
  16. <!-- <view class="title">案件详情</view> -->
  17. <view class="box">
  18. <uni-forms-item label="案件编号:" name="caseNum" label-width="120px" required>
  19. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.caseNum"
  20. placeholder="" />
  21. </uni-forms-item>
  22. <uni-forms-item label="申请人:" name="applicantName" label-width="120px" required>
  23. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.applicantName"
  24. placeholder="" />
  25. </uni-forms-item>
  26. <uni-forms-item label="被申请人:" name="respondentName" label-width="120px" required>
  27. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.respondentName"
  28. placeholder="" />
  29. </uni-forms-item>
  30. <uni-forms-item label="借款开始日期:" name="loanStartDate" label-width="120px" required>
  31. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.loanStartDate"
  32. placeholder="" />
  33. </uni-forms-item>
  34. <uni-forms-item label="借款结束日期:" name="loanEndDate" label-width="120px" required>
  35. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.loanEndDate"
  36. placeholder="" />
  37. </uni-forms-item>
  38. <uni-forms-item label="案件标的:" name="caseSubjectAmount" label-width="120px" required>
  39. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.caseSubjectAmount"
  40. placeholder="" />
  41. </uni-forms-item>
  42. <uni-forms-item label="申请人主张欠本金:" name="claimPrinciOwed" label-width="120px" required>
  43. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.claimPrinciOwed"
  44. placeholder="" />
  45. </uni-forms-item>
  46. <uni-forms-item label="申请人主张欠利息:" name="claimInterestOwed" label-width="120px" required>
  47. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.claimInterestOwed"
  48. placeholder="" />
  49. </uni-forms-item>
  50. <uni-forms-item label="申请人主张违约金:" name="claimLiquidDamag" label-width="120px" required>
  51. <uni-easyinput :inputBorder="false" :disabled='true' v-model="formData.claimLiquidDamag"
  52. placeholder="" />
  53. </uni-forms-item>
  54. <!-- <uni-forms-item label="是否有异议需要举证" label-width="120px" name="objectionAddEviden" required>
  55. <uni-data-checkbox class='checkbox' v-model="subnitForm.objectionAddEviden"
  56. :localdata="maintenancetypeArr" @change='uploadEvidenceChange'></uni-data-checkbox>
  57. </uni-forms-item> -->
  58. <!-- <uni-forms-item label="是否需要开庭审理" label-width="120px" name="openCourtHear" required>
  59. <uni-data-checkbox class='checkbox' v-model="subnitForm.openCourtHear"
  60. :localdata="arbitrationmethodArr" @change='arbitrationmethod'></uni-data-checkbox>
  61. </uni-forms-item> -->
  62. <!-- <uni-forms-item label="是否指派仲裁员" label-width="120px" name="pendingAppointArbotrar" required>
  63. <uni-data-checkbox class='checkbox' v-model="subnitForm.pendingAppointArbotrar"
  64. :localdata="uploadEvidence" @change='maintenancetypeChange'></uni-data-checkbox>
  65. </uni-forms-item> -->
  66. <uni-forms-item label="是否仲裁反请求" label-width="120px" name="objectiJuris" required>
  67. <uni-data-checkbox class='checkbox' v-model="subnitForm.objectiJuris"
  68. :localdata="objectiJurisArr" @change='objectiJurisChange'></uni-data-checkbox>
  69. </uni-forms-item>
  70. <!-- <uni-forms-item label="是否管辖异议申请" label-width="120px" name="adjudicaCounter" required>
  71. <uni-data-checkbox class='checkbox' v-model="subnitForm.adjudicaCounter"
  72. :localdata="adjudicaCounterArr"></uni-data-checkbox>
  73. </uni-forms-item> -->
  74. <!-- <uni-forms-item label="上传证据" name="headImage" label-width="120px" v-if="caseFlag">
  75. <uni-file-picker ref="files" :auto-upload="false" @select="select" :limit='1' />
  76. </uni-forms-item> -->
  77. <uni-forms-item
  78. label="是否书面审理"
  79. label-width="120px"
  80. name="respondentIsWrittenHear"
  81. required>
  82. <uni-data-checkbox class='checkbox' v-model="subnitForm.respondentIsWrittenHear"
  83. :localdata="adjudicateRecord" @change='arbitrationmethod'></uni-data-checkbox>
  84. </uni-forms-item>
  85. <uni-forms-item
  86. v-if="sysType==2"
  87. label="预约时间"
  88. label-width="120px"
  89. name="respondentIsWrittenHear"
  90. >
  91. <view class="example-body">
  92. <uni-datetime-picker type="date" @maskClick="maskClick" />
  93. </view>
  94. <view class="example-body" style="margin-top:20rpx">
  95. <uni-datetime-picker type="date" @maskClick="maskClick" />
  96. </view>
  97. <view class="example-body" style="margin-top:20rpx">
  98. <uni-datetime-picker type="date" @maskClick="maskClick" />
  99. </view>
  100. </uni-forms-item>
  101. <uni-forms-item
  102. label="选择仲裁员"
  103. label-width="120px"
  104. required
  105. v-if="sysType==2"
  106. >
  107. <multipleSelect @change="selectTJ" v-model="defaultSelected" multiple dataKey="label" dataValue="value" :localdata="selectData" ></multipleSelect>
  108. </uni-forms-item>
  109. </view>
  110. </uni-forms>
  111. <!-- 自定义弹窗层组件 -->
  112. <uni-popup scroll-y="true" ref="popup" :is-mask-click="false" type="bottom">
  113. <view class="content_list">
  114. <uni-card>
  115. <view class="" style="text-align: center;font-size: 35rpx;font-weight: bold;">
  116. <text>权力和义务告知书</text>
  117. </view>
  118. 根据《中华人民共和国仲裁法》的规定,仲裁当事人在仲裁活动中依法享有权利并承担义务。
  119. <view class="">
  120. <text>一、当事人的权利</text>
  121. <text>1.依据仲裁协议提请仲裁;撤回仲裁申请或者变更、放弃仲裁请求;承认或者反驳仲裁请求;提出仲裁反请求。</text>
  122. <text>2.对仲裁协议效力提出异议。</text>
  123. <text>3.委托代理人进行仲裁活动。</text>
  124. <text>4.申请财产保全、证据保全。</text>
  125. <text>5.约定、选定仲裁庭的组成方式;选定或者委托本会主任指定仲裁员;申请仲裁员、办案秘书、翻译人员、鉴定人员回避。</text>
  126. <text>6.收集、提供证据。对证据进行质证,发表辩论意见,作最后陈述。</text>
  127. <text>7.请求调解。自行和解的,可以请求仲裁庭根据和解协议作出裁决书。</text>
  128. <text>8.认为开庭笔录对自己陈述的记录有遗漏或者差错的,申请补正。</text>
  129. <text>9.对裁决书中的文字、计算错误或者仲裁庭已经裁决但在裁决书中遗漏的事项,请求补正或者作出补正裁决。</text>
  130. <text>10.向人民法院申请撤销、执行或者不予执行仲裁裁决。</text>
  131. </view>
  132. <view>
  133. <text>
  134. <text>二、当事人的义务</text>
  135. <text>1.如实书写仲裁申请书和答辩书;在庭审中不得做虚假陈述。</text>
  136. <text>2.对自己的主张按期提供证据,不得提供伪证。</text>
  137. <text>3.遵守仲裁员回避制度。</text>
  138. <text>4.按时参加开庭。</text>
  139. <text>5.遵守开庭纪律和仲裁程序。</text>
  140. <text>6.在庭审笔录上签字。</text>
  141. <text>7.在仲裁文书的送达回证上签字盖章。</text>
  142. <text>8.主动履行生效的仲裁裁决。</text>
  143. <text>9.按规定交纳仲裁费用。</text>
  144. <text>10.法律、法规和本会仲裁规则规定的其他义务。</text>
  145. </text>
  146. </view>
  147. <view class="from" style="margin-top:30rpx;">
  148. <uni-forms ref="reasontFormData" >
  149. <uni-forms-item label="异议原因:" label-width="100px" required>
  150. <uni-easyinput v-model="reasontFormData.reasont"
  151. placeholder="请输入异议原因" />
  152. </uni-forms-item>
  153. </uni-forms>
  154. </view>
  155. <view class="determine">
  156. <button style="width: 150rpx;float: left;margin-left: 90rpx;" type="primary" @tap="submitReasont">确定</button>
  157. <button style="width: 150rpx;" @tap="cencalBut">取消</button>
  158. </view>
  159. </uni-card>
  160. </view>
  161. </uni-popup>
  162. <view class="uni-list" v-if="selectFlag">
  163. <radio-group @change="checkboxChange" style="width: 100%;">
  164. <label class="uni-list-cell uni-list-cell-pd" v-for="item in items" :key="item.userId">
  165. <view>
  166. <radio :value="item.userId + ''" />
  167. </view>
  168. <view class="main">
  169. <view class="">
  170. 仲裁员姓名:{{item.nickName}}
  171. </view>
  172. <view class="">
  173. 介绍:{{item.remark || ''}}
  174. </view>
  175. </view>
  176. </label>
  177. </radio-group>
  178. </view>
  179. <button type="primary" @click="submitImg">确认提交</button>
  180. </view>
  181. </view>
  182. </view>
  183. </view>
  184. <view v-show="current === 1" style="padding: 20rpx;">
  185. <view class="" style="margin-top: 50rpx;">
  186. <view>申请人</view>
  187. <view v-for="item in formData.evidenceMaterialList">
  188. <uni-link v-if="item.annexType==2" :href="item.annexPath" color="#007BFF" :text="item.fileName"></uni-link>
  189. </view>
  190. <view>被申请人</view>
  191. <view v-for="item in formData.evidenceMaterialList">
  192. <uni-link v-if="item.annexType==6" :href="item.annexPath" color="#007BFF" :text="item.fileName"></uni-link>
  193. </view>
  194. </view>
  195. <view class="" style="margin-top: 40rpx;">
  196. <view>仲裁申请书</view>
  197. <view v-for="item in formData.evidenceMaterialList">
  198. <uni-link v-if="item.annexType==1" :href="item.annexPath" color="#007BFF" :text="item.fileName"></uni-link>
  199. </view>
  200. </view>
  201. </view>
  202. </uni-section>
  203. </view>
  204. </template>
  205. <script>
  206. import multipleSelect from '../../../components/zxz-uni-data-select/zxz-uni-data-select.vue'
  207. import {
  208. respondentDetail,
  209. arbitratorList,
  210. evidenceCrossexami
  211. } from '../../../api/handlecase/index.js'
  212. import {
  213. uploadImage
  214. } from '../../../api/upload.js'
  215. import {
  216. getToken
  217. } from '@/utils/auth'
  218. import moment from 'moment'
  219. import config from '@/config'
  220. const baseUrl = config.baseUrlZC
  221. const app = getApp()
  222. export default {
  223. components:{
  224. multipleSelect,
  225. },
  226. data() {
  227. return {
  228. sysType:null,//默认系统 1.仲裁2.调节
  229. selectValue:null,
  230. defaultSelected: [], //默认选中项
  231. serviceList: ['1','2'],//传递给子组件的数据
  232. current:0,
  233. itemsT:['案件详情','案件资料'],
  234. styleType:'button',
  235. activeColor:'#007aff',
  236. reasontFormData:{
  237. reasont:''
  238. },
  239. isShowPopup:false,
  240. formData: {},
  241. subnitForm: {
  242. objectionAddEviden:0,
  243. pendingAppointArbotrar:0,
  244. objectiJuris:0,
  245. adjudicaCounter:0,
  246. respondentIsWrittenHear:1,
  247. adjudicaCounterReason:''
  248. },
  249. selectFlag: false,
  250. caseFlag: false,
  251. tempFilePaths: null,
  252. rules: {
  253. // 是否有异议需要举证
  254. objectionAddEviden: {
  255. rules: [{
  256. required: true,
  257. errorMessage: '请选择'
  258. }]
  259. },
  260. // 是否需要开庭审理
  261. openCourtHear: {
  262. rules: [{
  263. required: true,
  264. errorMessage: '请选择'
  265. }]
  266. },
  267. // 是否指派仲裁员
  268. pendingAppointArbotrar: {
  269. rules: [{
  270. required: true,
  271. errorMessage: '请选择'
  272. }]
  273. },
  274. },
  275. maintenancetypeArr: [{
  276. text: '是',
  277. value: 1
  278. }, {
  279. text: '否',
  280. value: 0
  281. }, ],
  282. arbitrationmethodArr: [{
  283. text: '是',
  284. value: 1
  285. }, {
  286. text: '否',
  287. value: 0
  288. }],
  289. uploadEvidence: [{
  290. text: '是',
  291. value: 1
  292. }, {
  293. text: '否',
  294. value: 0
  295. }],
  296. objectiJurisArr: [{
  297. text: '是',
  298. value: 1
  299. }, {
  300. text: '否',
  301. value: 0
  302. }],
  303. adjudicaCounterArr: [{
  304. text: '是',
  305. value: 1
  306. }, {
  307. text: '否',
  308. value: 0
  309. }],
  310. obligationsArr: [{
  311. text: '是',
  312. value: 1
  313. }, {
  314. text: '否',
  315. value: 0
  316. }],
  317. // 是否书面审理
  318. adjudicateRecord: [{
  319. text: '是',
  320. value: 1
  321. },{
  322. text: '否',
  323. value: 0
  324. }],
  325. items: [],
  326. selectData: [{
  327. value: 0,
  328. label: '黄金糕'
  329. }, {
  330. value: '选项2',
  331. label: '双皮奶'
  332. }, {
  333. value: '选项3',
  334. label: '蚵仔煎'
  335. }, {
  336. value: '选项4',
  337. label: '龙须面'
  338. }, {
  339. value: '选项5',
  340. label: '北京烤鸭'
  341. }, {
  342. value: '选项6',
  343. label: '豆腐'
  344. }, {
  345. value: '选项7',
  346. label: '油条'
  347. }]
  348. }
  349. },
  350. mounted() {
  351. this.sysType = uni.getStorageSync('sysType')
  352. },
  353. methods: {
  354. selectTJ(e){
  355. // console.log(this.defaultSelected,'11111111')
  356. // console.log(e,'2222222222’')
  357. },
  358. onClickItem(e){
  359. if (this.current !== e.currentIndex) {
  360. this.current = e.currentIndex
  361. }
  362. },
  363. submitReasont(){
  364. if(this.reasontFormData.reasont){
  365. this.subnitForm.adjudicaCounterReason = this.reasontFormData.reasont
  366. this.$refs.popup.close()
  367. this.reasontFormData.reasont =''
  368. }else{
  369. this.$modal.msgError("请输入反意理由")
  370. }
  371. },
  372. cencalBut(){
  373. this.$refs.popup.close();
  374. this.subnitForm.objectiJuris = 0;
  375. },
  376. objectiJurisChange(value){
  377. let flag = value.detail.value;
  378. if(flag==1){
  379. this.$refs.popup.open('center')
  380. }
  381. },
  382. arbitrationmethod() {},
  383. uploadEvidenceChange(val) {
  384. let flag = val.detail.value;
  385. if (flag == 1) {
  386. this.caseFlag = true;
  387. } else if (flag == 0) {
  388. this.caseFlag = false;
  389. }
  390. },
  391. maintenancetypeChange(val) {
  392. let flag = val.detail.value;
  393. if (flag == 1) {
  394. this.selectFlag = true
  395. this.getArbitratorList()
  396. } else {
  397. this.selectFlag = false
  398. }
  399. },
  400. checkboxChange(e) {
  401. let params = parseInt(e.detail.value);
  402. let result = "";
  403. this.items.forEach(item=>{
  404. if(item.userId == params){
  405. result = item.nickName
  406. }
  407. })
  408. let arbitrators = [{id: params,arbitratorName: result}];
  409. // let idArr = e.detail.value;
  410. // let numberArray = idArr.map(str => parseInt(str));
  411. // const result = this.items.filter(item => numberArray.includes(item.userId));
  412. // result.forEach(item => {
  413. // arbitrators.push({
  414. // id: item.userId,
  415. // arbitratorName: item.nickName
  416. // })
  417. // })
  418. this.subnitForm.arbitrators = arbitrators;
  419. // console.log(this.subnitForm.arbitrators,"PPPPPPPPPPPPPP");
  420. },
  421. getData(parms) {
  422. respondentDetail(parms).then(res => {
  423. if(res.data.evidenceMaterialList.length > 0) {
  424. res.data.evidenceMaterialList.forEach(item =>{
  425. let names = item.annexPath.split('_')
  426. item['fileName'] = names[names.length -1]
  427. item.annexPath = baseUrl + item.annexPath
  428. })
  429. }
  430. this.formData = res.data
  431. this.formData.loanEndDate = moment(this.formData.loanEndDate).format('YYYY-MM-DD HH:mm:ss');
  432. this.formData.loanStartDate = moment(this.formData.loanStartDate).format(
  433. 'YYYY-MM-DD HH:mm:ss');
  434. this.formData.id = this.formData.id + ''
  435. })
  436. },
  437. // 文件上传
  438. select(e) {
  439. this.tempFilePaths = e.tempFilePaths;
  440. // loading
  441. uni.showLoading({
  442. title: '上传中'
  443. });
  444. uni.uploadFile({
  445. url: getApp().globalData.requestUrl + uploadImage,
  446. filePath: this.tempFilePaths[0],
  447. header: {
  448. Authorization: getToken() || '',
  449. },
  450. formData: {
  451. annexType: 6,
  452. id: this.formData.id
  453. },
  454. name: 'file',
  455. success: (res) => {
  456. let {
  457. data
  458. } = res
  459. uni.showToast({
  460. title: '上传成功',
  461. icon: 'none',
  462. duration: 1000
  463. })
  464. uni.hideLoading();
  465. },
  466. fail: (err) => {
  467. uni.showToast({
  468. title: '上传失败',
  469. icon: 'none',
  470. duration: 1000
  471. })
  472. uni.hideLoading()
  473. }
  474. })
  475. },
  476. // 获取仲裁员列表
  477. getArbitratorList() {
  478. arbitratorList().then(res => {
  479. this.items = res.rows;
  480. })
  481. },
  482. // 提交数据
  483. evidenceCrossexamiFn(parms) {
  484. evidenceCrossexami(parms).then(res => {
  485. uni.showToast({
  486. title: '提交成功',
  487. icon: 'none',
  488. duration: 1000
  489. })
  490. uni.navigateBack({
  491. delta:1
  492. })
  493. // uni.$tab.redirectTo({
  494. // url: '/pages/handlecase/index'
  495. // })
  496. // uni.navigateTo({
  497. // url: '/pages/handlecase/index'
  498. // })
  499. })
  500. },
  501. submitImg() {
  502. this.$refs.form.validate().then(res => {
  503. this.evidenceCrossexamiFn(this.subnitForm)
  504. }).catch(err => {
  505. console.log('表单错误信息:', err);
  506. })
  507. },
  508. // 证据清单
  509. evidenceList(){
  510. console.log(this.formData.evidenceMaterialList)
  511. this.$tab.navigateTo(`/pages/handlecase/component/evidenceList?title=证据清单&evidenceList=${encodeURIComponent(JSON.stringify(this.formData.evidenceMaterialList))}`)
  512. },
  513. },
  514. onLoad(data) {
  515. this.getData(data.id);
  516. this.subnitForm.caseId = Number(data.id);
  517. // this.getArbitratorList()
  518. }
  519. }
  520. </script>
  521. <style lang="scss">
  522. page {
  523. background-color: #ffffff;
  524. }
  525. .content_list {
  526. height: 1060rpx;
  527. overflow-x: hidden;
  528. .scroll_view_style{
  529. height: 100%;
  530. }
  531. }
  532. .assignrbitrators {
  533. // text-align: center;
  534. padding: 20rpx;
  535. .box {
  536. background-color: #fff;
  537. padding: 20rpx;
  538. border-radius: 20rpx;
  539. }
  540. .flexd {
  541. padding-top: 20rpx;
  542. .btn {
  543. width: 80%;
  544. font-size: 26rpx;
  545. border-radius: 60rpx;
  546. }
  547. }
  548. .btn {
  549. margin-top: 20rpx;
  550. }
  551. .select-picker {
  552. display: flex;
  553. box-sizing: border-box;
  554. flex-direction: row;
  555. align-items: center;
  556. border: 1px solid #DCDFE6;
  557. border-radius: 8rpx;
  558. width: 100%;
  559. height: 100%;
  560. padding: 0 24rpx;
  561. font-size: 28rpx;
  562. }
  563. .table-content {
  564. background-color: #fff;
  565. padding: 20rpx;
  566. border-radius: 20rpx;
  567. .none {
  568. font-size: 24rpx;
  569. height: 60rpx;
  570. line-height: 60rpx;
  571. }
  572. }
  573. .box {
  574. /deep/.title {
  575. font-size: 28rpx;
  576. height: 60rpx;
  577. line-height: 60rpx;
  578. }
  579. }
  580. .htmltitle {
  581. font-size: 30rpx;
  582. height: 80rpx;
  583. line-height: 80rpx;
  584. display: flex;
  585. justify-content: space-between;
  586. .look {
  587. color: #0D91F9;
  588. }
  589. }
  590. .title {
  591. font-size: 30rpx;
  592. height: 80rpx;
  593. line-height: 80rpx;
  594. }
  595. .adsTitle {
  596. font-size: 30rpx;
  597. }
  598. .multiple {
  599. width: 75%;
  600. height: 72rpx;
  601. line-height: 72rpx;
  602. font-size: 24rpx;
  603. // @include text-overflow($width: 100%)
  604. }
  605. .uni-list {
  606. width: 100%;
  607. margin-top: 20rpx;
  608. .uni-list-cell {
  609. border-radius: 30rpx;
  610. margin-bottom: 10rpx;
  611. display: flex;
  612. align-items: center;
  613. justify-content: flex-start;
  614. background-color: #fff;
  615. .main {
  616. height: 100%;
  617. margin-left: 20rpx;
  618. }
  619. }
  620. }
  621. .determine{
  622. padding: left 50rpx;
  623. }
  624. }
  625. </style>