newlyAddedCase.vue 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. <template>
  2. <view class="conent">
  3. <view class="assignrbitrators">
  4. <uni-forms ref="form" :modelValue="formData" :rules="rules">
  5. <uni-section title="案件信息" type="line" padding></uni-section>
  6. <uni-forms-item label="申请人调解请求:" name="arbitratClaims" label-width="120px" required>
  7. <uni-easyinput v-model="formData.arbitratClaims" type="textarea" placeholder="请输入申请人调解请求" />
  8. </uni-forms-item>
  9. <uni-forms-item label="事实和理由:" name="facts" label-width="120px" required>
  10. <uni-easyinput v-model="formData.facts" type="textarea" placeholder="请输入事实和理由" />
  11. </uni-forms-item>
  12. <uni-forms-item label="案件标的:" name="caseSubjectAmount" label-width="120px" required>
  13. <uni-easyinput v-model="formData.caseSubjectAmount" type="text" placeholder="请输入案件标的" />
  14. </uni-forms-item>
  15. <uni-forms-item label="模板:" name="templateId" label-width="120px" required
  16. :rules="[{'required': true,errorMessage: '模板不能为空'}]"
  17. >
  18. <uni-data-select :localdata="templateList" v-model="formData.templateId"></uni-data-select>
  19. </uni-forms-item>
  20. <uni-forms-item label="申请人案件证据资料上传:" name="headImage" label-width="120px">
  21. <uni-file-picker ref="files" file-mediatype="all" :auto-upload="false" @select="select" :limit='1' />
  22. </uni-forms-item>
  23. <uni-section title="双方信息" type="line" padding></uni-section>
  24. <uni-forms-item label="选择机构或自然人" label-width="120px" name="objectiJuris">
  25. <uni-data-checkbox class='checkbox'
  26. :localdata="objectiJurisArr"
  27. v-model="formData.affiliate.organizeFlag"
  28. @change='clearValidate'></uni-data-checkbox>
  29. </uni-forms-item>
  30. <uni-forms-item label="申请人:" name="affiliate.applicationName"
  31. :rules="[{'required': true,errorMessage: '申请人不能为空'}]"
  32. label-width="120px" required v-if="formData.affiliate.organizeFlag==0">
  33. <uni-easyinput v-model="formData.affiliate.applicationName" type="text" placeholder="请输入申请人名称" />
  34. </uni-forms-item>
  35. <uni-forms-item label="申请人机构名称:" name="affiliate.applicationName" label-width="120px"
  36. :rules="[{'required': true,errorMessage: '申请人机构名称为空'}]" required
  37. v-if="formData.affiliate.organizeFlag==1"
  38. >
  39. <uni-easyinput v-model="formData.affiliate.applicationName"
  40. type="text" placeholder="请输入申请人机构名称" />
  41. </uni-forms-item>
  42. <uni-forms-item label="申请人身份证号码:" name="affiliate.code" label-width="120px" required
  43. :rules="[
  44. {'required': true,errorMessage: '申请人身份证号码为空'},
  45. {pattern:'^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$',errorMessage:'申请人身份证格式错误'}
  46. ]"
  47. v-if="formData.affiliate.organizeFlag==0"
  48. >
  49. <uni-easyinput v-model="formData.affiliate.code" type="text" placeholder="请输入申请人身份证号码" />
  50. </uni-forms-item>
  51. <uni-forms-item label="统一社会信用代码:" name="affiliate.code" label-width="120px" required
  52. :rules="[{'required': true,errorMessage: '统一社会信用代码为空'}]"
  53. v-if="formData.affiliate.organizeFlag==1"
  54. >
  55. <uni-easyinput type="text" v-model="formData.affiliate.code" placeholder="请输入统一社会信用代码:" />
  56. </uni-forms-item>
  57. <uni-forms-item label="申请人邮箱:" name="affiliate.applicationEmail" label-width="120px" required
  58. :rules="[
  59. {'required': true,errorMessage: '申请人邮箱不能为空'},
  60. {pattern:'^\\S+?@\\S+?\\.\\S+?$',errorMessage:'邮箱格式不正确'}
  61. ]"
  62. >
  63. <uni-easyinput v-model="formData.affiliate.applicationEmail"
  64. type="text" placeholder="请输入申请人邮箱" />
  65. </uni-forms-item>
  66. <uni-forms-item label="申请人电话:" name="affiliate.applicationPhone" label-width="120px" required
  67. :rules="[
  68. {'required': true,errorMessage: '申请人电话不能为空'},
  69. {pattern:'^[1][3,4,5,6,7,8,9][0-9]{9}$',errorMessage:'申请人电话格式不正确'}
  70. ]"
  71. >
  72. <uni-easyinput v-model="formData.affiliate.applicationPhone" type="text" placeholder="请输入申请人电话" />
  73. </uni-forms-item>
  74. <uni-forms-item label="法定代表人:" name="affiliate.compLegalPerson" label-width="120px" required
  75. :rules="[{'required': true,errorMessage: '法定代表人不能为空'}]"
  76. >
  77. <uni-easyinput v-model="formData.affiliate.compLegalPerson" type="text" placeholder="请输入法定代表人" />
  78. </uni-forms-item>
  79. <uni-forms-item label="申请人住所:" name="affiliate.applicantHome" label-width="120px" required
  80. :rules="[{'required': true,errorMessage: '申请人住所不能为空'}]"
  81. >
  82. <uni-easyinput v-model="formData.affiliate.applicantHome" type="text" placeholder="请输入申请人住所" />
  83. </uni-forms-item>
  84. <uni-forms-item label="申请人联系地址:" name="affiliate.applicantAddress" label-width="120px" required
  85. :rules="[{'required': true,errorMessage: '申请人联系地址不能为空'}]"
  86. >
  87. <uni-easyinput v-model="formData.affiliate.applicantAddress" type="text" placeholder="请输入申请人联系地址" />
  88. </uni-forms-item>
  89. <uni-forms-item label="代理人联系电话:" name="affiliate.contactTelphoneAgent" label-width="120px"
  90. v-if="formData.affiliate.organizeFlag==0">
  91. <uni-easyinput v-model="formData.affiliate.contactTelphoneAgent" type="text" placeholder="请输入代理人联系电话" />
  92. </uni-forms-item>
  93. <uni-forms-item label="代理人联系电话:" name="affiliate.contactTelphoneAgent" label-width="120px" required
  94. :rules="[
  95. {'required': true,errorMessage: '代理人联系电话不能为空'},
  96. {pattern:'^[1][3,4,5,6,7,8,9][0-9]{9}$',errorMessage:'代理人联系电话格式不正确'}
  97. ]"
  98. v-if="formData.affiliate.organizeFlag==1"
  99. >
  100. <uni-easyinput v-model="formData.affiliate.contactTelphoneAgent" type="text" placeholder="请输入代理人联系电话" />
  101. </uni-forms-item>
  102. <uni-forms-item label="委托代理人姓名:" name="affiliate.nameAgent" label-width="120px" v-if="formData.affiliate.organizeFlag==0">
  103. <uni-easyinput v-model="formData.affiliate.nameAgent" type="text" placeholder="请输入委托代理人姓名" />
  104. </uni-forms-item>
  105. <uni-forms-item label="委托代理人姓名:" name="affiliate.nameAgent" label-width="120px" required
  106. :rules="[{'required': true,errorMessage: '委托代理人姓名不能为空'}]"
  107. v-if="formData.affiliate.organizeFlag==1"
  108. >
  109. <uni-easyinput v-model="formData.affiliate.nameAgent" type="text" placeholder="请输入委托代理人姓名" />
  110. </uni-forms-item>
  111. <uni-forms-item label="代理人邮箱:" name="affiliate.agentEmail" label-width="120px" v-if="formData.affiliate.organizeFlag==0">
  112. <uni-easyinput v-model="formData.affiliate.agentEmail" type="text" placeholder="请输入代理人邮箱" />
  113. </uni-forms-item>
  114. <uni-forms-item label="代理人邮箱:" name="affiliate.agentEmail" label-width="120px" required
  115. :rules="[
  116. {'required': true,errorMessage: '代理人邮箱不能为空'},
  117. {pattern:'^\\S+?@\\S+?\\.\\S+?$',errorMessage:'邮箱格式不正确'}
  118. ]"
  119. v-if="formData.affiliate.organizeFlag==1"
  120. >
  121. <uni-easyinput v-model="formData.affiliate.agentEmail" type="text" placeholder="请输入代理人邮箱" />
  122. </uni-forms-item>
  123. <uni-forms-item label="被申请人姓名:" name="affiliate.respondentName" label-width="120px" required
  124. :rules="[{'required': true,errorMessage: '被申请人姓名不能为空'}]"
  125. >
  126. <uni-easyinput v-model="formData.affiliate.respondentName" type="text" placeholder="请输入被申请人姓名" />
  127. </uni-forms-item>
  128. <uni-forms-item label="被申请人联系电话:" name="affiliate.respondentPhone" label-width="120px" required
  129. :rules="[
  130. {'required': true,errorMessage: '被申请人联系电话不能为空'},
  131. {pattern:'^[1][3,4,5,6,7,8,9][0-9]{9}$',errorMessage:'被申请人联系电话格式不正确'}
  132. ]"
  133. >
  134. <uni-easyinput v-model="formData.affiliate.respondentPhone" type="text" placeholder="请输入被申请人联系电话" />
  135. </uni-forms-item>
  136. <uni-forms-item label="被申请人身份证号:" name="affiliate.respondentIdentityNum" label-width="120px" required
  137. :rules="[
  138. {'required': true,errorMessage: '被申请人身份证号不能为空'},
  139. {pattern:'^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$',errorMessage:'被申请人身份证格式错误'}
  140. ]"
  141. >
  142. <uni-easyinput v-model="formData.affiliate.respondentIdentityNum" @blur="handleBlur" type="text" placeholder="请输入被申请人身份证号" />
  143. </uni-forms-item>
  144. <uni-forms-item label="被申请人性别" label-width="120px" required>
  145. <uni-data-checkbox class='checkbox'
  146. :disabled='true'
  147. v-model="formData.affiliate.respondentSex"
  148. :localdata="respondentSexy"></uni-data-checkbox>
  149. </uni-forms-item>
  150. <uni-forms-item label="被申请人出生年月日" label-width="120px">
  151. <uni-datetime-picker v-model="formData.affiliate.respondentBirth" :disabled='true' type="date" :clear-icon="false" />
  152. </uni-forms-item>
  153. <uni-forms-item label="被申请人住所:" name="affiliate.respondentHome" label-width="120px" required
  154. :rules="[{'required': true,errorMessage: '被申请人住所不能为空'}]"
  155. >
  156. <uni-easyinput v-model="formData.affiliate.respondentHome" type="text" placeholder="请输入被申请人住所" />
  157. </uni-forms-item>
  158. <uni-forms-item label="被申请人邮箱:" name="affiliate.respondentEmail" label-width="120px" required
  159. :rules="[
  160. {'required': true,errorMessage: '被申请人邮箱不能为空'},
  161. {pattern:'^\\S+?@\\S+?\\.\\S+?$',errorMessage:'邮箱格式不正确'}
  162. ]"
  163. >
  164. <uni-easyinput v-model="formData.affiliate.respondentEmail" type="text" placeholder="请输入被申请人邮箱" />
  165. </uni-forms-item>
  166. </uni-forms>
  167. <view class="determine" style="text-align: center;">
  168. <button class="mini-btn"
  169. type="primary" size="mini"
  170. @tap="submitReasont">确定</button>
  171. <button style="margin-left:30rpx;" class="mini-btn"
  172. type="default" size="mini"
  173. @tap="cencalBut">取消</button>
  174. </view>
  175. </view>
  176. </view>
  177. </template>
  178. <script>
  179. import {getTemplate,getInfoByIdCard,caseApplicationInsert,updateComfire} from '../../../api/handlecase/index.js'
  180. import {
  181. getToken
  182. } from '@/utils/auth'
  183. import config from '@/config'
  184. export default {
  185. data() {
  186. return {
  187. formData:{
  188. affiliate:{
  189. organizeFlag: 0,
  190. respondentSex: 0,
  191. },
  192. columnValueList: [],
  193. caseAttachList: [],
  194. },
  195. tempFilePaths: null,
  196. templateList:[],
  197. objectiJurisArr: [{
  198. text: '自然人',
  199. value: 0
  200. }, {
  201. text: '机构',
  202. value: 1
  203. }],
  204. respondentSexy: [
  205. {
  206. text: '女',
  207. value: 1
  208. }, {
  209. text: '男',
  210. value: 0
  211. }
  212. ],
  213. rules: {
  214. arbitratClaims: {
  215. rules:[
  216. {
  217. required: true,
  218. errorMessage: '申请人调解请求不能为空',
  219. },
  220. ],
  221. },
  222. facts:{
  223. rules:[
  224. {
  225. required: true,
  226. errorMessage: '事实和理由不能空',
  227. },
  228. ],
  229. },
  230. caseSubjectAmount:{
  231. rules:[
  232. {
  233. required: true,
  234. errorMessage: '案件标的不能为空',
  235. },
  236. ],
  237. },
  238. respondentEmail:{
  239. rules:[
  240. {
  241. required: true,
  242. errorMessage: '邮箱不能为空',
  243. }
  244. ],
  245. },
  246. }
  247. }
  248. },
  249. methods:{
  250. clearValidate(val){
  251. this.$refs["form"].clearValidate()
  252. },
  253. submitReasont(){
  254. this.$refs.form.validate().then(res=>{
  255. this.insertFn(this.formData)
  256. }).catch(err =>{
  257. })
  258. },
  259. /** 获取裁决书模板 */
  260. getTemplateFn(data) {
  261. getTemplate(data).then((res) => {
  262. //this.templateList = res.rows;
  263. res.rows.forEach(item=>{
  264. this.templateList.push({value:item.id,text:item.temName})
  265. })
  266. });
  267. },
  268. // 被申请人获取性别喝出生年月
  269. handleBlur(){
  270. let idCards = {
  271. idCard: this.formData.affiliate.respondentIdentityNum,
  272. };
  273. getInfoByIdCard(idCards).then(res=>{
  274. this.formData.affiliate.respondentSex = Number(res.respondentSex);
  275. this.formData.affiliate.respondentBirth = res.respondentBirth;
  276. })
  277. },
  278. // 新增案件
  279. insertFn(data) {
  280. caseApplicationInsert(data).then((res) => {
  281. uni.showToast({
  282. title: '成功',
  283. icon: 'none',
  284. duration: 1000
  285. })
  286. uni.navigateBack({
  287. delta: 1
  288. })
  289. });
  290. },
  291. //修改案件
  292. modifyData(data) {
  293. updateComfire(data).then((res) => {
  294. uni.showToast({
  295. title: '成功',
  296. icon: 'none',
  297. duration: 1000
  298. })
  299. uni.navigateBack({
  300. delta: 1
  301. })
  302. });
  303. },
  304. // 文件上传
  305. select(e) {
  306. this.tempFilePaths = e.tempFilePaths;
  307. // loading
  308. uni.showLoading({
  309. title: '上传中'
  310. });
  311. uni.uploadFile({
  312. url: config.baseUrlTJ + "/common/upload",
  313. filePath: this.tempFilePaths[0],
  314. header: {
  315. Authorization: getToken() || '',
  316. },
  317. formData: {
  318. annexType: 2,
  319. id: this.formData.id
  320. },
  321. name: 'file',
  322. success: (res) => {
  323. let result = JSON.parse(res.data)
  324. this.formData.caseAttachList.push({
  325. annexId: result.annexId,
  326. });
  327. console.log(result.annexId)
  328. uni.showToast({
  329. title: '上传成功',
  330. icon: 'none',
  331. duration: 1000
  332. })
  333. uni.hideLoading();
  334. },
  335. fail: (err) => {
  336. uni.showToast({
  337. title: '上传失败',
  338. icon: 'none',
  339. duration: 1000
  340. })
  341. uni.hideLoading()
  342. }
  343. })
  344. },
  345. cencalBut(){
  346. uni.navigateBack({
  347. delta: 1
  348. })
  349. }
  350. },
  351. onLoad(data) {
  352. this.getTemplateFn()
  353. }
  354. }
  355. </script>
  356. <style lang="scss">
  357. page {
  358. background-color: #ffffff;
  359. }
  360. .assignrbitrators{
  361. margin: 30rpx;
  362. }
  363. </style>