Ver código fonte

项目模板推进

邵洋 1 ano atrás
pai
commit
0028f65115

+ 48 - 0
src/api/basicData/xcrMajorMembers.js

@@ -0,0 +1,48 @@
+import request from '@/utils/request'
+
+// 查询主要成员信息列表
+export function listMembers(query) {
+  return request({
+    url: '/basicData/xcrMajorMembers/findByPage',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询主要成员信息详细
+export function getMembers(xhCodeId) {
+  return request({
+    url: '/basicData/xcrMajorMembers/' + xhCodeId,
+    method: 'get'
+  })
+}
+
+// 新增主要成员信息
+export function addMembers(data) {
+  return request({
+    url: '/basicData/xcrMajorMembers',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改主要成员信息
+export function updateMembers(data) {
+  return request({
+    url: '/basicData/xcrMajorMembers',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除主要成员信息
+export function delMembers(xhCodeId) {
+  return request({
+    url: '/basicData/xcrMajorMembers/deleteAll',
+    method: 'delete'
+  })
+}
+// 批量删除行政许可
+export function delMembersBatch(ids) {
+  return request.post('/basicData/xcrMajorMembers/delete',ids)
+}

+ 41 - 0
src/utils/likeQueryMethod.js

@@ -0,0 +1,41 @@
+/**
+ * 模糊查询得到传过去的对象的方法
+ * @param columnName 数据库的字段名
+ * @param queryStr 模糊查询字段
+ * @param pageNum 当前页码
+ * @param pageSize 当前字段大小
+ * @returns {{conditionJson: string, pageSize, pageNum: (number|*)}}
+ */
+export const likeQueryMethod = (columnName,queryStr,pageNum,pageSize,columnName2,queryStr2,isDesc = false)=>{
+    let conditionJsonWhole = [];
+    if(queryStr != ''){
+        if(queryStr == null) queryStr = '';
+        conditionJsonWhole.push({
+            column:columnName,
+            type:'like',
+            value:queryStr
+        });
+    }
+    if(queryStr2){
+        if(queryStr2 != ''){
+            if(queryStr2 == null) queryStr2 = '';
+            conditionJsonWhole.push({
+                column:columnName2,
+                type:'like',
+                value:queryStr2
+            });
+        }
+    }
+    if(isDesc){
+        conditionJsonWhole.push({
+            column:'date',
+            type:'orderByDesc'
+        })
+    }
+    let s = encodeURIComponent(JSON.stringify(conditionJsonWhole));
+    return ({
+        conditionJson:s,
+        pageNum,
+        pageSize
+    })
+}

+ 314 - 0
src/views/basicData/xcrMajorMembers/index.vue

@@ -0,0 +1,314 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="统一社会信用代码" prop="uniCode" label-width="200">
+        <el-input
+            v-model="queryParams.uniCode"
+            placeholder="请输入统一社会信用代码"
+            clearable
+            @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
+        <el-button icon="Refresh" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+            type="warning"
+            plain
+            icon="Download"
+            @click="handleExport"
+            :disabled="!membersList.length"
+            v-hasPermi="['basicData:members:export']"
+        >导出
+        </el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="membersList" height="650" @selection-change="handleSelectionChange">
+      <el-table-column label="人员ID" align="center" prop="etpsId" :show-overflow-tooltip='true'/>
+      <el-table-column label="人员ID" align="center" prop="PERSONID" :show-overflow-tooltip='true'/>
+      <el-table-column label="主体身份代码" align="center" prop="PRIPID" :show-overflow-tooltip='true'/>
+      <el-table-column label="姓名" align="center" prop="NAME" :show-overflow-tooltip='true'/>
+      <el-table-column label="性别" align="center" prop="SEX" :show-overflow-tooltip='true'/>
+      <el-table-column label="出生日期" align="center" prop="NATDATE" width="180">
+        <template #default="scope">
+          <span>{{ parseTime(scope.row.NATDATE, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="证件类型" align="center" prop="CERTYPE" :show-overflow-tooltip='true'/>
+      <el-table-column label="证件号码/代表证编号" align="center" prop="CERNO" :show-overflow-tooltip='true'/>
+      <el-table-column label="职务" align="center" prop="POSITION" :show-overflow-tooltip='true'/>
+      <el-table-column label="职务" align="center" prop="positionCn" :show-overflow-tooltip='true'/>
+      <el-table-column label="职务产生方式" align="center" prop="POSBRFORM" :show-overflow-tooltip='true'/>
+      <el-table-column label="申请前职业状况" align="center" prop="OCCSTBEAPP" :show-overflow-tooltip='true'/>
+      <el-table-column label="法定代表人标志/首席代表标志/负责人标识" align="center" prop="LEREPSIGN" :show-overflow-tooltip='true'/>
+      <el-table-column label="任命单位/委派方" align="center" prop="APPOUNIT" :show-overflow-tooltip='true'/>
+      <el-table-column label="联系电话" align="center" prop="TEL" :show-overflow-tooltip='true'/>
+      <el-table-column label="国别(地区)" align="center" prop="COUNTRY" :show-overflow-tooltip='true'/>
+      <el-table-column label="固定电话" align="center" prop="TELNUMBER" :show-overflow-tooltip='true'/>
+      <el-table-column label="移动电话" align="center" prop="MOBTel" :show-overflow-tooltip='true'/>
+      <el-table-column label="电子邮箱" align="center" prop="EMAIL" :show-overflow-tooltip='true'/>
+      <el-table-column label="住址" align="center" prop="HOUSEADD" :show-overflow-tooltip='true'/>
+      <el-table-column label="入境时间" align="center" prop="ARRCHDATE" width="180">
+        <template #default="scope">
+          <span>{{ parseTime(scope.row.ARRCHDATE, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="代表证期限自/任职起始日期" align="center" prop="REPCARFROM" width="180">
+        <template #default="scope">
+          <span>{{ parseTime(scope.row.REPCARFROM, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="代表证期限至/任职截止日期" align="center" prop="REPCARTO" width="180">
+        <template #default="scope">
+          <span>{{ parseTime(scope.row.REPCARTO, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="邮政编码" align="center" prop="POSTALCODE" :show-overflow-tooltip='true'/>
+      <el-table-column label="数据更新时间" align="center" prop="sExtDatatime" width="180">
+        <template #default="scope">
+          <span>{{ parseTime(scope.row.sExtDatatime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="统一社会信用代码" align="center" prop="uniCode" width="200"/>
+    </el-table>
+
+    <div style="position: fixed;bottom: 20px;right: 10px;">
+      <pagination
+          v-show="total>0"
+          :total="total"
+          v-model:page="queryParams.pageNum"
+          v-model:limit="queryParams.pageSize"
+          @pagination="getList"
+      />
+    </div>
+
+    <el-dialog :title="upload.title" v-model="upload.open" width="400px" append-to-body>
+      <el-upload ref="uploadRef" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
+                 :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
+                 :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
+        <el-icon class="el-icon--upload">
+          <upload-filled/>
+        </el-icon>
+        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+        <template #tip>
+          <div class="el-upload__tip text-center">
+            <span>仅允许导入xls、xlsx格式文件。</span>
+          </div>
+        </template>
+      </el-upload>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitFileForm">确 定</el-button>
+          <el-button @click="upload.open = false">取 消</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script setup name="Members">
+import {
+  listMembers,
+  getMembers,
+  delMembers,
+  delMembersBatch
+} from "@/api/basicData/xcrMajorMembers";
+import {reactive, ref, toRaw} from "vue";
+import {getToken} from "@/utils/auth";
+import {ElMessage} from "element-plus";
+import {likeQueryMethod} from "@/utils/likeQueryMethod";
+
+const {proxy} = getCurrentInstance();
+
+const membersList = ref([]);
+const open = ref(false);
+const loading = ref(true);
+const showSearch = ref(true);
+const ids = ref([]);
+const single = ref(true);
+const multiple = ref(true);
+const total = ref(0);
+const title = ref("");
+
+const upload = reactive({
+  // 是否显示弹出层(用户导入)
+  open: false,
+  // 弹出层标题(用户导入)
+  title: '',
+  // 是否禁用上传
+  isUploading: false,
+  // 设置上传的请求头部
+  headers: {Authorization: getToken()},
+  // 上传的地址
+  url: import.meta.env.VITE_APP_BASE_API + '/xcrMajorMembers/importData'
+})
+const handleFileSuccess = (e) => {
+  if (e.code == 200) {
+    ElMessage({
+      type: "success",
+      message: e.msg
+    })
+    getList()
+    proxy.$refs['uploadRef']?.clearFiles()
+  } else {
+    ElMessage({
+      type: "error",
+      message: e.msg
+    })
+    proxy.$refs['uploadRef']?.clearFiles()
+  }
+}
+
+function submitFileForm() {
+  proxy.$refs['uploadRef']?.submit();
+  upload.open = false;
+}
+
+function handleImport() {
+  upload.open = true
+}
+
+const data = reactive({
+  form: {},
+  queryParams: {
+    pageNum: 1,
+    pageSize: 20,
+    etpsId: null,
+    PERSONID: null,
+    PRIPID: null,
+    NAME: null,
+    SEX: null,
+    NATDATE: null,
+    CERTYPE: null,
+    CERNO: null,
+    POSITION: null,
+    positionCn: null,
+    POSBRFORM: null,
+    OCCSTBEAPP: null,
+    LEREPSIGN: null,
+    APPOUNIT: null,
+    TEL: null,
+    COUNTRY: null,
+    TELNUMBER: null,
+    MOBTel: null,
+    EMAIL: null,
+    HOUSEADD: null,
+    ARRCHDATE: null,
+    REPCARFROM: null,
+    REPCARTO: null,
+    POSTALCODE: null,
+    sExtDatatime: null,
+    uniCode: ''
+  },
+  rules: {
+  }
+});
+
+const {queryParams, form, rules} = toRefs(data);
+
+/** 查询主要成员信息列表 */
+function getList() {
+  loading.value = true;
+  let toServerObj = likeQueryMethod('uni_code', queryParams.value.uniCode, queryParams.value.pageNum, queryParams.value.pageSize);
+  listMembers(toServerObj).then(response => {
+    membersList.value = response.records;
+    total.value = response.total;
+    loading.value = false;
+  });
+}
+
+
+// 表单重置
+function reset() {
+  form.value = {
+    xhCodeId: null,
+    etpsId: null,
+    PERSONID: null,
+    PRIPID: null,
+    NAME: null,
+    SEX: null,
+    NATDATE: null,
+    CERTYPE: null,
+    CERNO: null,
+    POSITION: null,
+    positionCn: null,
+    POSBRFORM: null,
+    OCCSTBEAPP: null,
+    LEREPSIGN: null,
+    APPOUNIT: null,
+    TEL: null,
+    COUNTRY: null,
+    TELNUMBER: null,
+    MOBTel: null,
+    EMAIL: null,
+    HOUSEADD: null,
+    ARRCHDATE: null,
+    REPCARFROM: null,
+    REPCARTO: null,
+    POSTALCODE: null,
+    sExtDatatime: null,
+    uniCode: ''
+  };
+  proxy.resetForm("membersRef");
+}
+
+/** 搜索按钮操作 */
+function handleQuery() {
+  queryParams.value.pageNum = 1;
+  getList();
+}
+
+/** 重置按钮操作 */
+function resetQuery() {
+  proxy.resetForm("queryRef");
+  handleQuery();
+}
+
+// 多选框选中数据
+function handleSelectionChange(selection) {
+  ids.value = selection.map(item => item.xhCodeId);
+  single.value = selection.length != 1;
+  multiple.value = !selection.length;
+}
+
+
+/** 删除按钮操作 */
+async function handleDelete(row) {
+  const res = await delMembers();
+  if(res.code == 200){
+    ElMessage({
+      type:'success',
+      message:'删除成功'
+    })
+    getList();
+  }
+}
+/** 批量删除*/
+const batchDelete = (row)=>{
+  const idsToS = row.xhCodeId || ids.value;
+  (proxy.$modal).confirm('是否确认删除这' + idsToS.length+'条的数据项?').then(function() {
+    return delMembersBatch(toRaw(idsToS));
+  }).then(() => {
+    getList();
+    proxy.$modal.msgSuccess("删除成功");
+  }).catch(() => {});
+}
+
+/** 导出按钮操作 */
+function handleExport() {
+  proxy.download('xcrMajorMembers/exportData', {
+    ...queryParams.value
+  }, `主要成员信息_${new Date().getTime()}.xlsx`)
+}
+const downloadTemplate = ()=>{
+  proxy.download('xcrMajorMembers/getUploadTemplate',{}, `主要成员信息模板.xlsx`)
+}
+
+getList();
+</script>

+ 2 - 1
src/views/tool/swagger/index.vue

@@ -5,5 +5,6 @@
 <script setup>
 import iFrame from '@/components/iFrame'
 
-const url = ref(import.meta.env.VITE_APP_BASE_API + "/swagger-ui/index.html")
+// const url = ref(import.meta.env.VITE_APP_BASE_API + "/swagger-ui/index.html")
+const url = ref(import.meta.env.VITE_APP_BASE_API + "/doc.html")
 </script>