editFlowPath.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. <template>
  2. <div class="responseDialog">
  3. <el-dialog :title="(form.id?'编辑':'添加') +type.title" :visible.sync="showDialog" width="700px" :close-on-click-modal="false" :before-close="handleClose" append-to-body>
  4. <el-form :model="form" :rules="rules" ref="form" label-width="120px" label-position="left" v-loading="loading">
  5. <el-form-item :label="type.time">
  6. <el-date-picker v-model="form[type.timeField]" value-format="yyyy-MM-dd" type="date" placeholder="请选择时间" style="width: 100%;"></el-date-picker>
  7. </el-form-item>
  8. <template v-if="type.type==0">
  9. <el-form-item label="地点">
  10. <el-input v-model="form.position" autocomplete="off" placeholder="请输入地点"></el-input>
  11. </el-form-item>
  12. <el-form-item label="参与人">
  13. <el-input v-model="form.participator" autocomplete="off" placeholder="请输入参与人"></el-input>
  14. </el-form-item>
  15. <el-form-item label="口审笔录描述">
  16. <el-input v-model="form.recordDescription" autocomplete="off" placeholder="请输入口审笔录描述"></el-input>
  17. </el-form-item>
  18. </template>
  19. <template v-if="type.type ==1">
  20. <div>
  21. <el-form-item label="发文日">
  22. <el-date-picker v-model="form.invalidFileSendDate" value-format="yyyy-MM-dd" type="date" placeholder="请选择时间" style="width: 100%;"></el-date-picker>
  23. </el-form-item>
  24. </div>
  25. </template>
  26. <template v-if="type.type ==3">
  27. <div>
  28. <el-form-item label="决定书号码">
  29. <el-input v-model="form.fileNo" autocomplete="off" placeholder="请输入决定书号码"></el-input>
  30. </el-form-item>
  31. <el-form-item label="法律依据">
  32. <el-input v-model="form.legalBase" autocomplete="off" placeholder="请输入法律依据"></el-input>
  33. </el-form-item>
  34. <el-form-item label="决定要点">
  35. <el-input v-model="form.decisionKey" autocomplete="off" placeholder="请输入决定要点"></el-input>
  36. </el-form-item>
  37. <el-form-item label="结论">
  38. <el-input v-model="form.conclusion" autocomplete="off" placeholder="请输入结论"></el-input>
  39. </el-form-item>
  40. </div>
  41. </template>
  42. <el-form-item label="附件:">
  43. <template>
  44. <div>
  45. <myUpload :file-list="form.systemFileList" :autoUpload="true" @on-change="onChange" @on-remove="onRemove"></myUpload>
  46. </div>
  47. </template>
  48. </el-form-item>
  49. <el-form-item label="备注内容:">
  50. <el-input type='textarea' v-model="form.description" autocomplete="off" placeholder="请输入备注"></el-input>
  51. </el-form-item>
  52. </el-form>
  53. <span slot="footer" class="dialog-footer">
  54. <el-button @click="handleClose">取 消</el-button>
  55. <el-button type="primary" @click="finish" >确 定</el-button>
  56. </span>
  57. </el-dialog>
  58. </div>
  59. </template>
  60. <script>
  61. export default {
  62. props:{
  63. projectId:{
  64. default:0
  65. }
  66. },
  67. data() {
  68. return {
  69. showDialog: false,
  70. loading: false,
  71. form: {},
  72. rules: {},
  73. file: [],
  74. isFinish: false,
  75. type:{},
  76. types:{
  77. 0:{
  78. type:'0',
  79. title:'口审记录',
  80. time:'口审时间',
  81. timeField:'oralTrailTime'
  82. },
  83. 1:{
  84. type:'1',
  85. title:'无效请求书',
  86. time:'提出无效时间',
  87. timeField:'invalidRequestDate'
  88. },
  89. 2:{
  90. type:'2',
  91. title:'陈述意见书',
  92. time:'陈述答复时间',
  93. timeField:'stateReplyTime'
  94. },
  95. 3:{
  96. type:'3',
  97. title:'无效决定书',
  98. time:'无效决定时间',
  99. timeField:'invalidDecisionTime'
  100. },
  101. 4:{
  102. type:'4',
  103. title:'行政诉讼书',
  104. time:'发起诉讼时间',
  105. timeField:'proceedingTime'
  106. },
  107. 5:{
  108. type:'5',
  109. title:'行政诉讼判决书',
  110. time:'法院判决时间',
  111. timeField:'judgmentTime'
  112. },
  113. 6:{
  114. type:'6',
  115. title:'权要修改记录',
  116. time:'权要修改时间',
  117. timeField:'claimHistoryTime'
  118. },
  119. 7:{
  120. type:'7',
  121. title:'补充证据和理由记录',
  122. time:'补充证据和理由时间',
  123. timeField:'supplyEvidenceTime'
  124. },
  125. },
  126. rules: {
  127. fileName:[{required : false , message:'请输入文献名称',trigger:'blur'}]
  128. }
  129. }
  130. },
  131. watch: {
  132. },
  133. mounted() {
  134. },
  135. methods: {
  136. open(type,form) {
  137. this.type = this.types[type]
  138. this.form = JSON.parse(JSON.stringify(form))
  139. this.showDialog=true
  140. },
  141. // 弹窗确定
  142. finish() {
  143. this.$refs.form.validate((valid) => {
  144. if (valid) {
  145. var guids = this.$commonJS.checkUploadFile(this.form.systemFileList)
  146. if(!guids){
  147. return false
  148. }
  149. this.form.projectId = this.projectId
  150. this.form.fileGuids = guids
  151. if(!this.projectId){
  152. this.$emit('save',this.form)
  153. this.handleClose()
  154. return false
  155. }
  156. switch(this.type.type){
  157. case '0':
  158. this.addOralTrail()
  159. break;
  160. case '1':
  161. this.addInvalidProcess()
  162. break;
  163. case '2':
  164. this.addStateOpinion()
  165. break;
  166. case '3':
  167. this.addInvalidDecisionFile()
  168. break;
  169. case '4':
  170. this.addAdminProceed()
  171. break;
  172. case '5':
  173. this.addAdminProceedJudgment()
  174. break;
  175. case '6':
  176. this.addPatentClaimHistory()
  177. break;
  178. case '7':
  179. this.addSupplyEvidence()
  180. break;
  181. }
  182. } else {
  183. return false;
  184. }
  185. });
  186. },
  187. // 上传无效请求书
  188. addInvalidProcess() {
  189. var api = ''
  190. if(this.form.id){
  191. api = 'updateInvalidRequestFile'
  192. }else{
  193. api = 'addInvalidRequestFile'
  194. }
  195. this.$api[api](this.form).then(response=>{
  196. if(response.code == 200){
  197. this.$emit('save',true)
  198. this.handleClose()
  199. }
  200. })
  201. },
  202. // 上传口审记录
  203. addOralTrail() {
  204. var api = ''
  205. if(this.form.id){
  206. api = 'updateOralTrail'
  207. }else{
  208. api = 'addOralTrail'
  209. }
  210. this.$api[api](this.form).then(response=>{
  211. if(response.code == 200){
  212. this.$emit('save',true)
  213. this.handleClose()
  214. }
  215. })
  216. },
  217. // 上传无效决定书
  218. addInvalidDecisionFile() {
  219. var api = ''
  220. if(this.form.id){
  221. api = 'updateInvalidDecisionFile'
  222. }else{
  223. api = 'addInvalidDecisionFile'
  224. }
  225. this.$api[api](this.form).then(response=>{
  226. if(response.code == 200){
  227. this.$emit('save',true)
  228. this.handleClose()
  229. }
  230. })
  231. },
  232. // 上传行政诉讼书
  233. addAdminProceed() {
  234. var api = ''
  235. if(this.form.id){
  236. api = 'updateAdminProceed'
  237. }else{
  238. api = 'addAdminProceed'
  239. }
  240. this.$api[api](this.form).then(response=>{
  241. if(response.code == 200){
  242. this.$emit('save',true)
  243. this.handleClose()
  244. }
  245. })
  246. },
  247. // 上传行陈述意见书
  248. addStateOpinion() {
  249. var api = ''
  250. if(this.form.id){
  251. api = 'updateStateOpinion'
  252. }else{
  253. api = 'addStateOpinion'
  254. }
  255. this.$api[api](this.form).then(response=>{
  256. if(response.code == 200){
  257. this.$emit('save',true)
  258. this.handleClose()
  259. }
  260. })
  261. },
  262. // 上传行陈述意见书
  263. addAdminProceedJudgment() {
  264. var api = ''
  265. if(this.form.id){
  266. api = 'updateAdminProceedJudgment'
  267. }else{
  268. api = 'addAdminProceedJudgment'
  269. }
  270. this.$api[api](this.form).then(response=>{
  271. if(response.code == 200){
  272. this.$emit('save',true)
  273. this.handleClose()
  274. }
  275. })
  276. },
  277. //修改权利要求记录
  278. addPatentClaimHistory() {
  279. var api = ''
  280. if(this.form.id){
  281. api = 'updatePatentClaimHistory'
  282. }else{
  283. api = 'addPatentClaimHistory'
  284. }
  285. this.$api[api](this.form).then(response=>{
  286. if(response.code == 200){
  287. this.$emit('save',true)
  288. this.handleClose()
  289. }
  290. })
  291. },
  292. //补充证据和理由记录
  293. addSupplyEvidence() {
  294. var api = ''
  295. if(this.form.id){
  296. api = 'updateSupplyEvidence'
  297. }else{
  298. api = 'addSupplyEvidence'
  299. }
  300. this.$api[api](this.form).then(response=>{
  301. if(response.code == 200){
  302. this.$emit('save',true)
  303. this.handleClose()
  304. }
  305. })
  306. },
  307. // 关闭弹窗
  308. handleClose() {
  309. this.showDialog=false
  310. },
  311. //切换文件
  312. onChange(file, fileList){
  313. if (file.guid && this.form.systemFileList && this.form.systemFileList.length > 0) {
  314. let index = this.form.systemFileList.findIndex(item => {
  315. return item.uid == file.uid
  316. })
  317. if (index != -1) {
  318. this.form.systemFileList.splice(index, 1, file)
  319. } else {
  320. this.form.systemFileList.push(file.raw)
  321. }
  322. } else {
  323. if(!this.form.systemFileList){
  324. this.form.systemFileList = []
  325. }
  326. this.form.systemFileList.push(file.raw)
  327. }
  328. },
  329. //移除文件
  330. onRemove(file, fileList){
  331. if (file.guid) {
  332. let a = this.form.systemFileList.findIndex(item => {
  333. return item.guid == file.guid
  334. })
  335. this.form.systemFileList.splice(a, 1)
  336. } else {
  337. let a = this.form.systemFileList.findIndex(item => {
  338. return item.uid == file.uid
  339. })
  340. this.form.systemFileList.splice(a, 1)
  341. }
  342. },
  343. },
  344. }
  345. </script>
  346. <style lang="scss">
  347. .responseDialog{
  348. .el-dialog__body{
  349. padding-bottom: 0px;
  350. }
  351. }
  352. </style>