detail.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <template>
  2. <div id="detail">
  3. <data-form v-model="form" @save="toSave" :fields="fields" submitText="审核" :needSave="false">
  4. <template #status>
  5. <el-radio v-for="(i, index) in statusList" :key="`status-${index}`" :label="i.value"> {{ i.label }}</el-radio>
  6. </template>
  7. </data-form>
  8. </div>
  9. </template>
  10. <script>
  11. const _ = require('lodash');
  12. import quests from '@common/dict/patent/quests';
  13. import { mapState, createNamespacedHelpers } from 'vuex';
  14. export default {
  15. name: 'detail',
  16. props: {
  17. form: { type: Object, default: () => {} },
  18. },
  19. model: {
  20. prop: 'form',
  21. event: 'change',
  22. },
  23. components: {},
  24. data: function () {
  25. return {
  26. fields: [
  27. { label: '发明名称', model: 'name', type: 'text', required: true },
  28. { label: '申请人', model: 'apply_name', required: true, type: 'text' },
  29. { label: '申请类型', model: 'type', type: 'text', required: true },
  30. { label: '发明人', model: 'inventer', type: 'text', required: true },
  31. { label: '技术联系人', model: 'contact', type: 'text', required: true },
  32. { label: '联系人电话', model: 'phone', type: 'text', required: true },
  33. { label: '联系人邮箱', model: 'email', type: 'text', required: true },
  34. { label: '特殊情况说明', model: 'desc', type: 'text', required: true },
  35. ],
  36. typeList: [{ label: '国家发明' }, { label: '国防专利' }, { label: '实用新型' }, { label: '外观' }],
  37. statusList: [
  38. { label: '通过', value: '1' },
  39. { label: '拒绝', value: '-1' },
  40. ],
  41. };
  42. },
  43. created() {
  44. this.setQuest();
  45. },
  46. methods: {
  47. async toSave({ data }) {
  48. this.$emit('submit', data);
  49. },
  50. setQuest() {
  51. let fields = _.cloneDeep(this.fields);
  52. let qs = _.cloneDeep(quests);
  53. qs = qs.map((i) => {
  54. i.type = 'text';
  55. return i;
  56. });
  57. fields.push(...qs);
  58. fields = fields.map((i) => {
  59. delete i.required;
  60. return i;
  61. });
  62. // 添加审核
  63. // const checkField = [
  64. // {
  65. // label: '预估结果',
  66. // model: 'status',
  67. // type: 'radio',
  68. // required: true,
  69. // },
  70. // {
  71. // label: '意见&建议',
  72. // model: 'remark',
  73. // type: 'textarea',
  74. // },
  75. // ];
  76. // fields.push(...checkField);
  77. this.$set(this, `fields`, fields);
  78. },
  79. },
  80. computed: {
  81. ...mapState(['user']),
  82. pageTitle() {
  83. return `${this.$route.meta.title}`;
  84. },
  85. },
  86. metaInfo() {
  87. return { title: this.$route.meta.title };
  88. },
  89. };
  90. </script>
  91. <style lang="less" scoped></style>