guhongwei 2 роки тому
батько
коміт
ea007bd11f

+ 10 - 0
src/router/module/frameCommon.ts

@@ -23,5 +23,15 @@ export default [
     path: '/common/rights/info',
     meta: { title: '详细信息' },
     component: () => import('@/views/common/rights/info.vue')
+  },
+  {
+    path: '/common/trans/info',
+    meta: { title: '详细信息' },
+    component: () => import('@/views/common/trans/info.vue')
+  },
+  {
+    path: '/common/trans/infos',
+    meta: { title: '详细信息' },
+    component: () => import('@/views/common/trans/infos.vue')
   }
 ];

+ 221 - 0
src/views/common/trans/info.vue

@@ -0,0 +1,221 @@
+<template>
+  <div id="info">
+    <el-row>
+      <el-col :span="24" class="main animate__animated animate__backInRight" v-loading="loading">
+        <el-col :span="24" class="one">
+          <cSearch :is_title="false" :is_back="true" @toBack="toBack"></cSearch>
+        </el-col>
+        <el-col :span="24" class="two">
+          <el-tabs v-model="active" type="card">
+            <el-tab-pane label="交易信息" name="1">
+              <cForm :span="24" :fields="formFields" :form="form" :isSave="false" label-width="auto" :disabled="true">
+                <template #type>
+                  <el-option v-for="(i, index) in typeList" :key="index" :label="i.label" :value="i.value"></el-option>
+                </template>
+                <template #is_report>
+                  <el-option v-for="(i, index) in isnoList" :key="index" :label="i.label" :value="i.value"></el-option>
+                </template>
+                <template #report>
+                  <el-link :underline="false" v-for="i in form.report" :key="i.url" :href="i.url" target="_blank">{{ i.name }}</el-link>
+                </template>
+                <template #record>
+                  <cTable :fields="recordfields" :opera="[]" :list="form.record" :usePage="false"> </cTable>
+                </template>
+              </cForm>
+            </el-tab-pane>
+            <el-tab-pane label="合同信息" name="2">
+              <el-row class="contract">
+                <el-col :span="24" class="contract_1">
+                  <span>甲方(转让方):</span>
+                  <span>
+                    <el-input class="input inputlarge" v-model="form.contract.partya" placeholder="请输入甲方名称" :disabled="true" />
+                  </span>
+                  <span>;</span>
+                </el-col>
+                <el-col :span="24" class="contract_1">
+                  <span>乙方(受让方):</span>
+                  <span>
+                    <el-input class="input inputlarge" v-model="form.contract.partyb" placeholder="请输入甲方名称" />
+                  </span>
+                  <span>;</span>
+                </el-col>
+                <el-col :span="24" class="contract_1">
+                  <span>甲,乙方经过平等协商;自愿订立专利权转让合同,并共同遵照执行;</span>
+                </el-col>
+                <el-col :span="24" class="contract_1">
+                  <span>第一条:甲方将其享有的</span>
+                  <span>
+                    <el-input class="input" v-model="form.contract.patent_name" placeholder="请输入专利名称" :disabled="true" />
+                  </span>
+                  <span>专利权有偿转让给乙方,专利号为:</span>
+                  <span>
+                    <el-input class="input" v-model="form.contract.create_number" placeholder="请输入专利号" :disabled="true" />
+                  </span>
+                  <span>;</span>
+                </el-col>
+                <el-col :span="24" class="contract_1">
+                  <span>第二条:甲方向乙方转让</span>
+                  <span>
+                    <el-input class="input" v-model="form.contract.patent_name" placeholder="请输入专利名称" :disabled="true" />
+                  </span>
+                  <span>专利权;</span>
+                </el-col>
+                <el-col :span="24" class="contract_1">
+                  <span>第三条:乙方为此向甲方支付专利权转让费用</span>
+                  <span>
+                    <el-input class="input" v-model="form.contract.money" placeholder="请输入费用" :disabled="true" />
+                  </span>
+                  <span>元,于本合同生效后</span>
+                  <span>
+                    <el-input class="input" v-model="form.contract.days" placeholder="请输入天数" :disabled="true" />
+                  </span>
+                  <span>天内一次付清;</span>
+                </el-col>
+                <el-col :span="24" class="contract_1">
+                  <span>第四条:如任何一方违反本合同约定给对方造成损失,守约方可以要求对方承担违约责任;</span>
+                </el-col>
+                <el-col :span="24" class="contract_1">
+                  <span>第五条:甲方保证此转让行为不侵犯任何第三方的合法权益;</span>
+                </el-col>
+                <el-col :span="24" class="contract_1">
+                  <span>第六条:本合同于各方签字盖章后生效,未经各方同意,任何一方均无权修改或变更本合同约定;</span>
+                </el-col>
+                <el-col :span="24" class="contract_1">
+                  <span>第七条:任何因本合同的履行而产生的争议,均应当友好协商解决,如无法协商解决,各方同意交由</span>
+                  <span>
+                    <el-input class="input" v-model="form.contract.address" placeholder="请输入省市" :disabled="true" />
+                  </span>
+                  <span>仲裁委员会按照该会现时有效的仲裁规则予以仲裁;</span>
+                </el-col>
+                <el-col :span="24" class="contract_1">
+                  <span>第八条:本合同一式三份,双方各执一份,备案一份; </span>
+                </el-col>
+              </el-row>
+            </el-tab-pane>
+          </el-tabs>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script setup lang="ts">
+// 基础
+import type { Ref } from 'vue';
+import { onMounted, ref } from 'vue';
+import { useRoute } from 'vue-router';
+
+// 接口
+import { TranstionStore } from '@common/src/stores/patent/transtion';
+import { DictDataStore } from '@common/src/stores/system/dictData'; // 字典表
+import type { IQueryResult } from '@/util/types.util';
+const transAxios = TranstionStore();
+const dictAxios = DictDataStore();
+
+// 路由
+const route = useRoute();
+// 加载中
+const loading: Ref<any> = ref(false);
+
+const active: Ref<any> = ref('1');
+// 表单
+const form: Ref<any> = ref({ report: [], contract: {} });
+const formFields: Ref<any> = ref([
+  { label: '专利名称', model: 'patent_name' },
+  { label: '申请号', model: 'create_number' },
+  { label: '当前权利人', model: 'on_obligee' },
+  { label: '联系人', model: 'contact' },
+  { label: '手机号', model: 'phone' },
+  { label: '电子邮箱', model: 'email' },
+  { label: '投资预算(万元)', model: 'budget' },
+  { label: '交易类型', model: 'type', type: 'select' },
+  { label: '是否有评估报告', model: 'is_report', type: 'select' },
+  { label: '评估报告', model: 'report', custom: true },
+  { label: '技术说明', model: 'requirementdesc', type: 'textarea' },
+  { label: '商业预期', model: 'expect', type: 'textarea' },
+  { label: '合作条件及要求', model: 'condition', type: 'textarea' },
+  { label: '摘要', model: 'abstract', type: 'textarea' },
+  { label: '变更后专利权人', model: 'on_afterobligee' },
+  { label: '专利权转移日期', model: 'transfer_date', type: 'date' },
+  { label: '审核记录', model: 'record', custom: true }
+]);
+const recordfields: Ref<any> = ref([
+  { label: '状态', model: 'status', format: (i) => getDict(i, 'status') },
+  { label: '提交人', model: 'save_name' },
+  { label: '提交时间', model: 'create_time' },
+  { label: '提交内容', model: 'content' }
+]);
+
+// 字典表
+const typeList: Ref<any> = ref([]);
+const statusList: Ref<any> = ref([]);
+const isnoList: Ref<any> = ref([]);
+
+// 请求
+onMounted(async () => {
+  loading.value = true;
+  await searchOther();
+  await search();
+  loading.value = false;
+});
+const search = async () => {
+  let id = route.query.id;
+  let info: any = { report: [], contract: {} };
+  if (id) {
+    let res: IQueryResult = await transAxios.fetch(id);
+    if (res.errcode == '0') info = res.data;
+  }
+  form.value = info;
+};
+const getDict = (value, model) => {
+  if (model == 'status') {
+    let data = statusList.value.find((i) => i.value == value);
+    if (data) return data.label;
+    else return '暂无';
+  }
+};
+// 查询其他信息
+const searchOther = async () => {
+  let res: IQueryResult;
+  // 类型
+  res = await dictAxios.query({ type: 'patent_trans_type' });
+  if (res.errcode == '0') typeList.value = res.data;
+  // 状态
+  res = await dictAxios.query({ type: 'patent_trans_status' });
+  if (res.errcode == '0') statusList.value = res.data;
+  res = await dictAxios.query({ type: 'common_isno' });
+  if (res.errcode == '0') isnoList.value = res.data;
+};
+// 返回上一页
+const toBack = () => {
+  window.history.go(-1);
+};
+</script>
+<style scoped lang="scss">
+.contract {
+  padding: 0 10px;
+  .contract_1 {
+    margin: 0 0 10px 0;
+    span {
+      font-size: 16px;
+      font-family: monospace;
+      font-weight: bold;
+    }
+    .input {
+      width: 15%;
+      margin: 0 5px;
+      :deep(.el-input__wrapper) {
+        box-shadow: none;
+        border-bottom: 1px solid #000000;
+        border-radius: 0;
+      }
+      :deep(.el-input__inner) {
+        color: #000000;
+      }
+    }
+    .inputlarge {
+      width: 30%;
+    }
+  }
+}
+</style>

+ 244 - 0
src/views/common/trans/infos.vue

@@ -0,0 +1,244 @@
+<template>
+  <div id="infos">
+    <el-row>
+      <el-col :span="24" class="main animate__animated animate__backInRight" v-loading="loading">
+        <el-col :span="24" class="one">
+          <cSearch :is_title="false" :is_back="true" @toBack="toBack"></cSearch>
+        </el-col>
+        <el-col :span="24" class="two">
+          <el-row class="two_1">
+            <el-col :span="12" class="l">
+              <el-col :span="24" class="title">交易信息</el-col>
+              <el-col :span="24" class="info">
+                <cForm :span="24" :fields="formFields" :form="form" :isSave="false" label-width="auto" :disabled="true">
+                  <template #type>
+                    <el-option v-for="(i, index) in typeList" :key="index" :label="i.label" :value="i.value"></el-option>
+                  </template>
+                  <template #is_report>
+                    <el-option v-for="(i, index) in isnoList" :key="index" :label="i.label" :value="i.value"></el-option>
+                  </template>
+                  <template #report>
+                    <el-link :underline="false" v-for="i in form.report" :key="i.url" :href="i.url" target="_blank">{{ i.name }}</el-link>
+                  </template>
+                  <template #record>
+                    <cTable :fields="recordfields" :opera="[]" :list="form.record" :usePage="false"> </cTable>
+                  </template>
+                </cForm>
+              </el-col>
+            </el-col>
+            <el-col :span="12" class="r">
+              <el-col :span="24" class="title">合同信息</el-col>
+              <el-col :span="24" class="info">
+                <el-row class="contract">
+                  <el-col :span="24" class="contract_1">
+                    <span>甲方(转让方):</span>
+                    <span>
+                      <el-input class="input inputlarge" v-model="form.contract.partya" placeholder="请输入甲方名称" :disabled="true" />
+                    </span>
+                    <span>;</span>
+                  </el-col>
+                  <el-col :span="24" class="contract_1">
+                    <span>乙方(受让方):</span>
+                    <span>
+                      <el-input class="input inputlarge" v-model="form.contract.partyb" placeholder="请输入甲方名称" />
+                    </span>
+                    <span>;</span>
+                  </el-col>
+                  <el-col :span="24" class="contract_1">
+                    <span>甲,乙方经过平等协商;自愿订立专利权转让合同,并共同遵照执行;</span>
+                  </el-col>
+                  <el-col :span="24" class="contract_1">
+                    <span>第一条:甲方将其享有的</span>
+                    <span>
+                      <el-input class="input" v-model="form.contract.patent_name" placeholder="请输入专利名称" :disabled="true" />
+                    </span>
+                    <span>专利权有偿转让给乙方,专利号为:</span>
+                    <span>
+                      <el-input class="input" v-model="form.contract.create_number" placeholder="请输入专利号" :disabled="true" />
+                    </span>
+                    <span>;</span>
+                  </el-col>
+                  <el-col :span="24" class="contract_1">
+                    <span>第二条:甲方向乙方转让</span>
+                    <span>
+                      <el-input class="input" v-model="form.contract.patent_name" placeholder="请输入专利名称" :disabled="true" />
+                    </span>
+                    <span>专利权;</span>
+                  </el-col>
+                  <el-col :span="24" class="contract_1">
+                    <span>第三条:乙方为此向甲方支付专利权转让费用</span>
+                    <span>
+                      <el-input class="input" v-model="form.contract.money" placeholder="请输入费用" :disabled="true" />
+                    </span>
+                    <span>元,于本合同生效后</span>
+                    <span>
+                      <el-input class="input" v-model="form.contract.days" placeholder="请输入天数" :disabled="true" />
+                    </span>
+                    <span>天内一次付清;</span>
+                  </el-col>
+                  <el-col :span="24" class="contract_1">
+                    <span>第四条:如任何一方违反本合同约定给对方造成损失,守约方可以要求对方承担违约责任;</span>
+                  </el-col>
+                  <el-col :span="24" class="contract_1">
+                    <span>第五条:甲方保证此转让行为不侵犯任何第三方的合法权益;</span>
+                  </el-col>
+                  <el-col :span="24" class="contract_1">
+                    <span>第六条:本合同于各方签字盖章后生效,未经各方同意,任何一方均无权修改或变更本合同约定;</span>
+                  </el-col>
+                  <el-col :span="24" class="contract_1">
+                    <span>第七条:任何因本合同的履行而产生的争议,均应当友好协商解决,如无法协商解决,各方同意交由</span>
+                    <span>
+                      <el-input class="input" v-model="form.contract.address" placeholder="请输入省市" :disabled="true" />
+                    </span>
+                    <span>仲裁委员会按照该会现时有效的仲裁规则予以仲裁;</span>
+                  </el-col>
+                  <el-col :span="24" class="contract_1">
+                    <span>第八条:本合同一式三份,双方各执一份,备案一份; </span>
+                  </el-col>
+                </el-row>
+              </el-col>
+            </el-col>
+          </el-row>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script setup lang="ts">
+// 基础
+import type { Ref } from 'vue';
+import { onMounted, ref } from 'vue';
+import { useRoute } from 'vue-router';
+
+// 接口
+import { TranstionStore } from '@common/src/stores/patent/transtion';
+import { DictDataStore } from '@common/src/stores/system/dictData'; // 字典表
+import type { IQueryResult } from '@/util/types.util';
+const transAxios = TranstionStore();
+const dictAxios = DictDataStore();
+
+// 路由
+const route = useRoute();
+
+// 加载中
+const loading: Ref<any> = ref(false);
+
+const form: Ref<any> = ref({ report: [], contract: {} });
+const formFields: Ref<any> = ref([
+  { label: '专利名称', model: 'patent_name' },
+  { label: '申请号', model: 'create_number' },
+  { label: '当前权利人', model: 'on_obligee' },
+  { label: '联系人', model: 'contact' },
+  { label: '手机号', model: 'phone' },
+  { label: '电子邮箱', model: 'email' },
+  { label: '投资预算(万元)', model: 'budget' },
+  { label: '交易类型', model: 'type', type: 'select' },
+  { label: '是否有评估报告', model: 'is_report', type: 'select' },
+  { label: '评估报告', model: 'report', custom: true },
+  { label: '技术说明', model: 'requirementdesc', type: 'textarea' },
+  { label: '商业预期', model: 'expect', type: 'textarea' },
+  { label: '合作条件及要求', model: 'condition', type: 'textarea' },
+  { label: '摘要', model: 'abstract', type: 'textarea' },
+  { label: '变更后专利权人', model: 'on_afterobligee' },
+  { label: '专利权转移日期', model: 'transfer_date', type: 'date' },
+  { label: '审核记录', model: 'record', custom: true }
+]);
+const recordfields: Ref<any> = ref([
+  { label: '状态', model: 'status', format: (i) => getDict(i, 'status') },
+  { label: '提交人', model: 'save_name' },
+  { label: '提交时间', model: 'create_time' },
+  { label: '提交内容', model: 'content' }
+]);
+
+// 字典表
+const typeList: Ref<any> = ref([]);
+const statusList: Ref<any> = ref([]);
+const isnoList: Ref<any> = ref([]);
+
+// 请求
+onMounted(async () => {
+  loading.value = true;
+  await searchOther();
+  await search();
+  loading.value = false;
+});
+const search = async () => {
+  let id = route.query.id;
+  let info: any = { report: [], contract: {} };
+  if (id) {
+    let res: IQueryResult = await transAxios.fetch(id);
+    if (res.errcode == '0') info = res.data;
+  }
+  form.value = info;
+};
+const getDict = (value, model) => {
+  if (model == 'status') {
+    let data = statusList.value.find((i) => i.value == value);
+    if (data) return data.label;
+    else return '暂无';
+  }
+};
+// 查询其他信息
+const searchOther = async () => {
+  let res: IQueryResult;
+  // 类型
+  res = await dictAxios.query({ type: 'patent_trans_type' });
+  if (res.errcode == '0') typeList.value = res.data;
+  // 状态
+  res = await dictAxios.query({ type: 'patent_trans_status' });
+  if (res.errcode == '0') statusList.value = res.data;
+  res = await dictAxios.query({ type: 'common_isno' });
+  if (res.errcode == '0') isnoList.value = res.data;
+};
+// 返回上一页
+const toBack = () => {
+  window.history.go(-1);
+};
+</script>
+<style scoped lang="scss">
+.main {
+  .two {
+    .two_1 {
+      .title {
+        text-align: center;
+        font-size: 25px;
+        font-family: monospace;
+        font-weight: bold;
+        margin: 0 0 10px 0;
+      }
+      .info {
+        border: 1px solid #f1f1f1;
+        padding: 10px;
+        border-radius: 5px;
+      }
+    }
+  }
+}
+.contract {
+  padding: 0 10px;
+  .contract_1 {
+    margin: 0 0 10px 0;
+    span {
+      font-size: 16px;
+      font-family: monospace;
+      font-weight: bold;
+    }
+    .input {
+      width: 15%;
+      margin: 0 5px;
+      :deep(.el-input__wrapper) {
+        box-shadow: none;
+        border-bottom: 1px solid #000000;
+        border-radius: 0;
+      }
+      :deep(.el-input__inner) {
+        color: #000000;
+      }
+    }
+    .inputlarge {
+      width: 30%;
+    }
+  }
+}
+</style>