newlyAddedCase.vue 15KB

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