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