newlyAddedCase.vue 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  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,caseApplicationSelectById} 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. ids:null,
  182. tempFilePaths: null,
  183. templateList:[],
  184. objectiJurisArr: [{
  185. text: '自然人',
  186. value: 0
  187. }, {
  188. text: '机构',
  189. value: 1
  190. }],
  191. respondentSexy: [
  192. {
  193. text: '女',
  194. value: 1
  195. }, {
  196. text: '男',
  197. value: 0
  198. }
  199. ],
  200. rules:{},
  201. rulesappName: [
  202. {
  203. required: true,
  204. errorMessage: '输入信息不能为空',
  205. },{
  206. validateFunction: (rule, value, data, callback) => {
  207. //判断手机号格式时候正确
  208. if (value.length<1) {
  209. if(this.formData.affiliate.organizeFlag == 0){
  210. callback('请输入申请人姓名')
  211. }else{
  212. callback('请输入机构名称')
  213. }
  214. }
  215. return true
  216. }
  217. }
  218. ],
  219. rulesappNo: [
  220. {
  221. required: true,
  222. errorMessage:'输入信息不能为空',
  223. },{
  224. validateFunction: (rule, value, data, callback) => {
  225. //判断手机号格
  226. if(this.formData.affiliate.organizeFlag == 0){
  227. 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]$/
  228. if(!pNoReg.test(value)){
  229. callback('请输入正确的身份证号码')
  230. }
  231. }else{
  232. if(!value){
  233. callback('请输入正确的机构信息')
  234. }
  235. }
  236. return true
  237. }
  238. }
  239. ]
  240. }
  241. },
  242. methods:{
  243. clearValidate(val){
  244. this.formData.affiliate.applicationName = null
  245. this.formData.affiliate.code = null
  246. this.$refs["form"].clearValidate()
  247. },
  248. submitReasont(){
  249. this.$refs.form.validate().then(res=>{
  250. if(this.ids){
  251. this.modifyData(this.formData)
  252. }else{
  253. this.insertFn(this.formData)
  254. }
  255. }).catch(err =>{
  256. })
  257. },
  258. /** 获取裁决书模板 */
  259. getTemplateFn(data) {
  260. getTemplate(data).then((res) => {
  261. //this.templateList = res.rows;
  262. res.rows.forEach(item=>{
  263. this.templateList.push({value:item.id,text:item.temName})
  264. })
  265. });
  266. },
  267. /** 根据案件id获取对应信息 */
  268. caseApplicationSelectByIdFn(data) {
  269. caseApplicationSelectById(data).then(res=>{
  270. res.data.affiliate.respondentSex = Number(res.data.affiliate.respondentSex)
  271. this.formData = res.data
  272. })
  273. },
  274. // 被申请人获取性别出生年月
  275. handleBlur(){
  276. let idCards = {
  277. idCard: this.formData.affiliate.respondentIdentityNum,
  278. };
  279. getInfoByIdCard(idCards).then(res=>{
  280. this.formData.affiliate.respondentSex = Number(res.respondentSex);
  281. this.formData.affiliate.respondentBirth = res.respondentBirth;
  282. })
  283. },
  284. // 新增案件
  285. insertFn(data) {
  286. caseApplicationInsert(data).then((res) => {
  287. uni.showToast({
  288. title: '成功',
  289. icon: 'none',
  290. duration: 1000
  291. })
  292. uni.navigateBack({
  293. delta: 1
  294. })
  295. });
  296. },
  297. //修改案件
  298. modifyData(data) {
  299. updateComfire(data).then((res) => {
  300. uni.showToast({
  301. title: '成功',
  302. icon: 'none',
  303. duration: 1000
  304. })
  305. uni.navigateBack({
  306. delta: 1
  307. })
  308. });
  309. },
  310. // 文件上传
  311. select(e) {
  312. this.tempFilePaths = e.tempFilePaths;
  313. // loading
  314. uni.showLoading({
  315. title: '上传中'
  316. });
  317. uni.uploadFile({
  318. url: config.baseUrlTJ + "/common/upload",
  319. filePath: this.tempFilePaths[0],
  320. header: {
  321. Authorization: getToken() || '',
  322. },
  323. formData: {
  324. annexType: 2,
  325. id: this.formData.id
  326. },
  327. name: 'file',
  328. success: (res) => {
  329. let result = JSON.parse(res.data)
  330. this.formData.caseAttachList.push({
  331. annexId: result.annexId,
  332. });
  333. console.log(result.annexId)
  334. uni.showToast({
  335. title: '上传成功',
  336. icon: 'none',
  337. duration: 1000
  338. })
  339. uni.hideLoading();
  340. },
  341. fail: (err) => {
  342. uni.showToast({
  343. title: '上传失败',
  344. icon: 'none',
  345. duration: 1000
  346. })
  347. uni.hideLoading()
  348. }
  349. })
  350. },
  351. cencalBut(){
  352. uni.navigateBack({
  353. delta: 1
  354. })
  355. }
  356. },
  357. onLoad(data) {
  358. this.ids = data.id
  359. if(this.ids){
  360. this.caseApplicationSelectByIdFn({id:data.id})
  361. uni.setNavigationBarTitle({title:"案件修改"})
  362. }else{
  363. uni.setNavigationBarTitle({title:"案件新增"})
  364. }
  365. this.getTemplateFn()
  366. },
  367. onReady() {
  368. this.$refs.form.setRules(this.rules)
  369. }
  370. }
  371. </script>
  372. <style lang="scss">
  373. page {
  374. background-color: #ffffff;
  375. }
  376. .assignrbitrators{
  377. margin: 30rpx;
  378. }
  379. </style>