Authored by 王涛

乙方运维代码迁移优化

Showing 17 changed files with 797 additions and 540 deletions
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 :multiple="true" 8 :multiple="true"
9 :auto-upload="false"> 9 :auto-upload="false">
10 <template #trigger> 10 <template #trigger>
11 - <el-button size="small" type="primary">选择文件</el-button> 11 + <el-button size="small" type="primary">选择文件</el-button>
12 </template> 12 </template>
13 支持格式: 13 支持格式:
14 <el-tooltip placement="top" effect="light"> 14 <el-tooltip placement="top" effect="light">
@@ -18,9 +18,9 @@ @@ -18,9 +18,9 @@
18 <i class="el-icon-chat-round"></i> 18 <i class="el-icon-chat-round"></i>
19 </el-tooltip> 19 </el-tooltip>
20 <template #tip> 20 <template #tip>
21 - <div class="el-upload__tip">  
22 - 文件命名规范建议:以文档编号+"-" 开头,如:3101-基本信息.xls  
23 - </div> 21 +<!-- <div class="el-upload__tip">-->
  22 +<!-- 文件命名规范建议:以文档编号+"-" 开头,如:3101-基本信息.xls-->
  23 +<!-- </div>-->
24 </template> 24 </template>
25 </el-upload> 25 </el-upload>
26 </template> 26 </template>
  1 +export default {
  2 + name: 'projectDOCndex',
  3 + template: '',
  4 + components: {},
  5 + data() {
  6 + return {}
  7 + },
  8 + setup() {
  9 + let height = Vue.ref(window.innerHeight - 130);
  10 +
  11 + const {proxy} = Vue.getCurrentInstance();
  12 +
  13 +
  14 + let columns = Vue.ref([
  15 + {
  16 + prop: 'fileName',
  17 + label: '年度',
  18 + sortable: true,
  19 + align: 'left',
  20 + render: function (row) {
  21 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  22 + }
  23 + },
  24 + {
  25 + prop: 'm1',
  26 + label: '1月',
  27 + sortable: true,
  28 + align: 'left',
  29 + render: function (row) {
  30 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  31 + }
  32 + },
  33 + {
  34 + prop: 'm2',
  35 + label: '2月',
  36 + sortable: true,
  37 + align: 'left',
  38 + render: function (row) {
  39 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  40 + }
  41 + },
  42 + {
  43 + prop: 'm3',
  44 + label: '3月',
  45 + sortable: true,
  46 + align: 'left',
  47 + render: function (row) {
  48 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  49 + }
  50 + },
  51 + {
  52 + prop: 'm4',
  53 + label: '4月',
  54 + sortable: true,
  55 + align: 'left',
  56 + render: function (row) {
  57 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  58 + }
  59 + },
  60 + {
  61 + prop: 'm5',
  62 + label: '5月',
  63 + sortable: true,
  64 + align: 'left',
  65 + render: function (row) {
  66 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  67 + }
  68 + },
  69 + {
  70 + prop: 'm6',
  71 + label: '6月',
  72 + sortable: true,
  73 + align: 'left',
  74 + render: function (row) {
  75 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  76 + }
  77 + },
  78 + {
  79 + prop: 'm7',
  80 + label: '7月',
  81 + sortable: true,
  82 + align: 'left',
  83 + render: function (row) {
  84 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  85 + }
  86 + },
  87 + {
  88 + prop: 'm8',
  89 + label: '8月',
  90 + sortable: true,
  91 + align: 'left',
  92 + render: function (row) {
  93 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  94 + }
  95 + },
  96 + {
  97 + prop: 'm9',
  98 + label: '9月',
  99 + sortable: true,
  100 + align: 'left',
  101 + render: function (row) {
  102 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  103 + }
  104 + },
  105 + {
  106 + prop: 'm110',
  107 + label: '10月',
  108 + sortable: true,
  109 + align: 'left',
  110 + render: function (row) {
  111 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  112 + }
  113 + },
  114 + {
  115 + prop: 'm11',
  116 + label: '11月',
  117 + sortable: true,
  118 + align: 'left',
  119 + render: function (row) {
  120 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  121 + }
  122 + },
  123 + {
  124 + prop: 'm12',
  125 + label: '12月',
  126 + sortable: true,
  127 + align: 'left',
  128 + render: function (row) {
  129 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  130 + }
  131 + }
  132 + ]);
  133 +
  134 + let dataList = Vue.ref([]);
  135 + let currentPage = Vue.ref(1);
  136 + let total = Vue.ref(0);
  137 +
  138 + // 获取表格树
  139 + let getPage = () => {
  140 +
  141 + }
  142 +
  143 +
  144 + return {
  145 + columns,
  146 + height,
  147 + dataList,
  148 + currentPage,
  149 + total,
  150 + getPage
  151 + }
  152 + }
  153 +}
  1 +<div>
  2 + <div>
  3 + <!-- 人员信息总汇-->
  4 + <el-divider content-position="left">项目评价汇总</el-divider>
  5 + <cm-table-page :columns="columns" :dataList="dataList" @loaddata="getPage" :showIndex="true"
  6 + :showBorder="true" :currentPage="currentPage" :total="total" :loading="true"
  7 + :showPage="true" :height="height - 54"></cm-table-page>
  8 + </div>
  9 +</div>
  1 +export default {
  2 + name: 'projectPJIndex',
  3 + template: '',
  4 + components: {},
  5 + data() {
  6 + return {}
  7 + },
  8 + setup() {
  9 + let height = Vue.ref(window.innerHeight - 130);
  10 +
  11 + const {proxy} = Vue.getCurrentInstance();
  12 +
  13 +
  14 + let columns = Vue.ref([
  15 + {
  16 + prop: 'fileName',
  17 + label: '年度',
  18 + sortable: true,
  19 + align: 'left',
  20 + render: function (row) {
  21 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  22 + }
  23 + },
  24 + {
  25 + prop: 'm1',
  26 + label: '1月',
  27 + sortable: true,
  28 + align: 'left',
  29 + render: function (row) {
  30 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  31 + }
  32 + },
  33 + {
  34 + prop: 'm2',
  35 + label: '2月',
  36 + sortable: true,
  37 + align: 'left',
  38 + render: function (row) {
  39 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  40 + }
  41 + },
  42 + {
  43 + prop: 'm3',
  44 + label: '3月',
  45 + sortable: true,
  46 + align: 'left',
  47 + render: function (row) {
  48 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  49 + }
  50 + },
  51 + {
  52 + prop: 'm4',
  53 + label: '4月',
  54 + sortable: true,
  55 + align: 'left',
  56 + render: function (row) {
  57 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  58 + }
  59 + },
  60 + {
  61 + prop: 'm5',
  62 + label: '5月',
  63 + sortable: true,
  64 + align: 'left',
  65 + render: function (row) {
  66 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  67 + }
  68 + },
  69 + {
  70 + prop: 'm6',
  71 + label: '6月',
  72 + sortable: true,
  73 + align: 'left',
  74 + render: function (row) {
  75 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  76 + }
  77 + },
  78 + {
  79 + prop: 'm7',
  80 + label: '7月',
  81 + sortable: true,
  82 + align: 'left',
  83 + render: function (row) {
  84 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  85 + }
  86 + },
  87 + {
  88 + prop: 'm8',
  89 + label: '8月',
  90 + sortable: true,
  91 + align: 'left',
  92 + render: function (row) {
  93 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  94 + }
  95 + },
  96 + {
  97 + prop: 'm9',
  98 + label: '9月',
  99 + sortable: true,
  100 + align: 'left',
  101 + render: function (row) {
  102 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  103 + }
  104 + },
  105 + {
  106 + prop: 'm110',
  107 + label: '10月',
  108 + sortable: true,
  109 + align: 'left',
  110 + render: function (row) {
  111 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  112 + }
  113 + },
  114 + {
  115 + prop: 'm11',
  116 + label: '11月',
  117 + sortable: true,
  118 + align: 'left',
  119 + render: function (row) {
  120 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  121 + }
  122 + },
  123 + {
  124 + prop: 'm12',
  125 + label: '12月',
  126 + sortable: true,
  127 + align: 'left',
  128 + render: function (row) {
  129 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  130 + }
  131 + }
  132 + ]);
  133 +
  134 + let dataList = Vue.ref([]);
  135 + let currentPage = Vue.ref(1);
  136 + let total = Vue.ref(0);
  137 +
  138 + // 获取表格树
  139 + let getPage = () => {
  140 +
  141 + }
  142 +
  143 +
  144 + return {
  145 + columns,
  146 + height,
  147 + dataList,
  148 + currentPage,
  149 + total,
  150 + getPage
  151 + }
  152 + }
  153 +}
  1 +<div>
  2 + <el-row>
  3 + <el-col :span="12">
  4 + <div id="main" style="width: 500px;height:600px;"></div>
  5 + </el-col>
  6 + <el-col :span="12">
  7 + <div id="score" style="width: 600px;height:400px;"></div>
  8 + </el-col>
  9 + </el-row>
  10 +
  11 + <el-dialog
  12 + v-model="dialogVisible"
  13 + title="3月各项评分"
  14 + width="60%"
  15 + :before-close="handleClose"
  16 + >
  17 + <el-table border :data="tableData" stripe @cell-dblclick='handleCell' header-row-class-name="tbl-header-class" style="width: 100%;margin: 20px 0;">
  18 + <el-table-column prop="date" label="分类" align="center" min-width="100" />
  19 + <el-table-column prop="date" label="项目" align="center" min-width="100" />
  20 + <el-table-column prop="name" label="分值" align="center" min-width="100" />
  21 + <el-table-column prop="name" label="打分人" align="center" min-width="100"/>
  22 + <el-table-column prop="name" label="得分" align="center" min-width="100">
  23 + <template #default="scope">
  24 + <el-input v-model="scope.row.name" style='width: 80px;'></el-input>
  25 + </template>
  26 + </el-table-column>
  27 + <el-table-column prop="name" label="扣分原因" align="center" min-width="100">
  28 + <template #default="scope">
  29 + <el-input v-model="scope.row.name" style='width: 80px;'></el-input>
  30 + </template>
  31 + </el-table-column>
  32 + </el-table>
  33 + <template #footer>
  34 + <span class="dialog-footer">
  35 + <el-button type="primary" size="small" @click="dialogVisible = false">确认</el-button>
  36 + <el-button size="small"@click="dialogVisible = false">关闭</el-button>
  37 + </span>
  38 + </template>
  39 + </el-dialog>
  40 +
  41 +</div>
  1 +export default {
  2 + name: 'projectPJTIndex',
  3 + template: '',
  4 + components: {},
  5 + data() {
  6 + return {}
  7 + },
  8 + setup() {
  9 + let height = Vue.ref(window.innerHeight - 130);
  10 +
  11 + const {proxy} = Vue.getCurrentInstance();
  12 +
  13 +
  14 + let columns = Vue.ref([
  15 + {
  16 + prop: 'fileName',
  17 + label: '日常资料',
  18 + sortable: true,
  19 + align: 'left',
  20 + render: function (row) {
  21 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  22 + }
  23 + },
  24 + {
  25 + prop: 'm1',
  26 + label: '文档资料',
  27 + sortable: true,
  28 + align: 'left',
  29 + render: function (row) {
  30 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  31 + }
  32 + },
  33 + {
  34 + prop: 'm2',
  35 + label: '项目保密协议',
  36 + sortable: true,
  37 + align: 'left',
  38 + render: function (row) {
  39 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  40 + }
  41 + }
  42 + ]);
  43 +
  44 + let dataList = Vue.ref([]);
  45 + let currentPage = Vue.ref(1);
  46 + let total = Vue.ref(0);
  47 +
  48 + // 获取表格树
  49 + let getPage = () => {
  50 +
  51 + }
  52 +
  53 +
  54 + return {
  55 + columns,
  56 + height,
  57 + dataList,
  58 + currentPage,
  59 + total,
  60 + getPage
  61 + }
  62 + }
  63 +}
  1 +<div>
  2 + <div>
  3 + <!-- 人员信息总汇-->
  4 + <project-ry/>
  5 + </div>
  6 +</div>
  7 +<div>
  8 + <!-- 项目评价总汇-->
  9 + <project-pj/>
  10 +</div>
  11 +<div>
  12 + <!-- 项目资料总汇-->
  13 + <project-zl/>
  14 +</div>
  15 +</div>
  1 +export default {
  2 + name: 'projectIndex',
  3 + template: '',
  4 + components: {
  5 + 'project-ry': Vue.defineAsyncComponent(
  6 + () => myImport('components/page/operationMaintenance/ry/index')
  7 + ),
  8 + 'project-pj': Vue.defineAsyncComponent(
  9 + () => myImport('components/page/operationMaintenance/pj/index')
  10 + ),
  11 + 'project-zl': Vue.defineAsyncComponent(
  12 + () => myImport('components/page/operationMaintenance/zl/index')
  13 + ),
  14 + },
  15 + data() {
  16 + return {
  17 + props: {
  18 + label: 'title',
  19 + children: 'children'
  20 + }
  21 + }
  22 + },
  23 + setup() {
  24 + let height = Vue.ref(window.innerHeight - 130);
  25 + const {proxy} = Vue.getCurrentInstance();
  26 +
  27 +
  28 + // 挂载完
  29 + Vue.onMounted(() => {
  30 +
  31 + })
  32 +
  33 +
  34 + return {
  35 +
  36 + }
  37 + }
  38 +}
  1 +<div>
  2 + <div>
  3 + <!-- 人员信息总汇-->
  4 + <el-divider content-position="left">人员信息汇总</el-divider>
  5 + <cm-table-page :columns="columns" :dataList="dataList" @loaddata="getPage" :showIndex="true"
  6 + :showBorder="true" :currentPage="currentPage" :total="total" :loading="true"
  7 + :showPage="true" :height="height - 54"></cm-table-page>
  8 + </div>
  9 +</div>
  1 +export default {
  2 + name: 'projectUserIndex',
  3 + template: '',
  4 + components: {},
  5 + data() {
  6 + return {
  7 +
  8 + }
  9 + },
  10 + setup() {
  11 + let height = Vue.ref(window.innerHeight - 130);
  12 +
  13 + const {proxy} = Vue.getCurrentInstance();
  14 +
  15 +
  16 + let columns = Vue.ref([{
  17 + prop: 'fileName',
  18 + label: '运维人员姓名',
  19 + sortable: true,
  20 + align: 'left',
  21 + render: function (row) {
  22 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  23 + }
  24 + }, {
  25 + prop: 'createUser',
  26 + label: '在职状态',
  27 + sortable: true,
  28 + width: '120px'
  29 + }, {
  30 + prop: 'createTime',
  31 + label: '个人信息',
  32 + sortable: true,
  33 + width: '180px'
  34 + }, {
  35 + prop: 'createTime',
  36 + label: '个人保密协议书',
  37 + sortable: true,
  38 + width: '180px'
  39 + }, {
  40 + prop: 'createTime',
  41 + label: '月度总结',
  42 + sortable: true,
  43 + width: '180px'
  44 + }]);
  45 +
  46 + let dataList = Vue.ref([]);
  47 + let currentPage = Vue.ref(1);
  48 + let total = Vue.ref(0);
  49 +
  50 + // 获取表格树
  51 + let getPage = () => {
  52 +
  53 + }
  54 +
  55 +
  56 + return {
  57 + columns,
  58 + height,
  59 + dataList,
  60 + currentPage,
  61 + total,
  62 + getPage
  63 + }
  64 + }
  65 +}
  1 +<div>
  2 + <el-form
  3 + :model="ruleForm"
  4 + label-width="120px"
  5 + size="small"
  6 + >
  7 + <el-row>
  8 + <el-col :span="8">
  9 + <el-form-item label="姓名" prop="nickname" class="form-class">
  10 + <el-input v-model="ruleForm.nickname" style='width: 190px;'></el-input>
  11 + </el-form-item>
  12 + <el-form-item label="性别" prop="sex" class="form-class">
  13 + <el-radio-group v-model="ruleForm.sex">
  14 + <el-radio label="1"></el-radio>
  15 + <el-radio label="0"></el-radio>
  16 + </el-radio-group>
  17 + </el-form-item>
  18 + <el-form-item label="学历" prop="education" class="form-class">
  19 + <el-input v-model="ruleForm.education" style='width: 190px;'></el-input>
  20 + </el-form-item>
  21 + <el-form-item label="手机号" prop="name" class="form-class">
  22 + <el-input v-model="ruleForm.phone" style='width: 190px;'></el-input>
  23 + </el-form-item>
  24 + <el-form-item label="电子邮箱" prop="name" class="form-class">
  25 + <el-input v-model="ruleForm.email" style='width: 190px;'></el-input>
  26 + </el-form-item>
  27 +
  28 + <el-form-item label="入职时间" prop="name" class="form-class">
  29 + <el-date-picker
  30 + v-model="ruleForm.entryTime"
  31 + type="date"
  32 + style='width: 190px;'
  33 + placeholder="选择日期">
  34 + </el-date-picker>
  35 + </el-form-item>
  36 + <el-form-item label="获得证书" prop="name" class="form-class">
  37 + <el-input v-model="ruleForm.certificate" style='width: 190px;'></el-input>
  38 + </el-form-item>
  39 + </el-col>
  40 + <el-col :span="8">
  41 + <el-form-item label="所在公司" prop="name" class="form-class">
  42 + <el-input v-model="ruleForm.company" style='width: 190px;'></el-input>
  43 + </el-form-item>
  44 + <el-form-item label="年龄" prop="name" class="form-class">
  45 + <el-input v-model="ruleForm.age" style='width: 190px;'></el-input>
  46 + </el-form-item>
  47 + <el-form-item label="毕业院校" prop="name" class="form-class">
  48 + <el-input v-model="ruleForm.university" style='width: 190px;'></el-input>
  49 + </el-form-item>
  50 + <el-form-item label="座机号码" prop="name" class="form-class">
  51 + <el-input v-model="ruleForm.tel" style='width: 190px;'></el-input>
  52 + </el-form-item>
  53 + <el-form-item label="家庭住址" prop="name" class="form-class">
  54 + <el-input v-model="ruleForm.post" style='width: 190px;'></el-input>
  55 + </el-form-item>
  56 + <el-form-item label="离职时间" prop="name" class="form-class">
  57 + <el-date-picker
  58 + v-model="ruleForm.quitTime"
  59 + type="date"
  60 + style='width: 190px;'
  61 + placeholder="选择日期">
  62 + </el-date-picker>
  63 + </el-form-item>
  64 + </el-col>
  65 + <el-col :span="8">
  66 + <el-image style="width: 200px; height: 200px" :src="imageUrl"></el-image>
  67 + <el-upload
  68 + class="upload-demo"
  69 + :show-file-list="false"
  70 + action=""
  71 + :on-preview="handlePreview"
  72 + :on-remove="handleRemove"
  73 + :before-remove="beforeRemove"
  74 + :http-request="uploadFile"
  75 + multiple
  76 + :limit="3"
  77 + :on-exceed="handleExceed"
  78 + >
  79 + <el-button size="small" type="primary">上传照片</el-button>
  80 + </el-upload>
  81 + </el-col>
  82 + </el-row>
  83 + <div style="text-align: center;">
  84 + <el-button type="primary" size="small" @click="handleSave">保存</el-button>
  85 + </div>
  86 + <!-- <el-form-item>
  87 + <el-button type="primary" @click="submitForm('ruleForm')"
  88 + >Create</el-button
  89 + >
  90 + <el-button @click="resetForm('ruleForm')">Reset</el-button>
  91 + </el-form-item> -->
  92 + </el-form>
  93 +</div>
  1 +export default {
  2 + name: 'projectPJIndex',
  3 + template: '',
  4 + components: {},
  5 + data() {
  6 + return {}
  7 + },
  8 + setup() {
  9 + let height = Vue.ref(window.innerHeight - 130);
  10 +
  11 + const {proxy} = Vue.getCurrentInstance();
  12 +
  13 + let ruleForm = Vue.reactive({
  14 + nickname:'',
  15 + sex: '',
  16 + phone: '',
  17 + tel: '',
  18 + email: '',
  19 + post: '',
  20 + headImgUrl: '',
  21 + age: '',
  22 + university: '',
  23 + education: '',
  24 + quitTime: '',
  25 + entryTime:'',
  26 + company: '',
  27 + certificate: ''
  28 + })
  29 +
  30 +
  31 + return {
  32 + ruleForm
  33 + }
  34 + }
  35 +}
  1 +<div>
  2 + <div>
  3 + <!-- 人员信息总汇-->
  4 + <el-divider content-position="left">项目资料汇总</el-divider>
  5 + <cm-table-page :columns="columns" :dataList="dataList" @loaddata="getPage" :showIndex="true"
  6 + :showBorder="true" :currentPage="currentPage" :total="total" :loading="true"
  7 + :showPage="true" :height="height - 54"></cm-table-page>
  8 + </div>
  9 +</div>
  1 +export default {
  2 + name: 'projectZLlIndex',
  3 + template: '',
  4 + components: {},
  5 + data() {
  6 + return {}
  7 + },
  8 + setup() {
  9 + let height = Vue.ref(window.innerHeight - 130);
  10 +
  11 + const {proxy} = Vue.getCurrentInstance();
  12 +
  13 +
  14 + let columns = Vue.ref([
  15 + {
  16 + prop: 'fileName',
  17 + label: '日常资料',
  18 + sortable: true,
  19 + align: 'left',
  20 + render: function (row) {
  21 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  22 + }
  23 + },
  24 + {
  25 + prop: 'm1',
  26 + label: '文档资料',
  27 + sortable: true,
  28 + align: 'left',
  29 + render: function (row) {
  30 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  31 + }
  32 + },
  33 + {
  34 + prop: 'm2',
  35 + label: '项目保密协议',
  36 + sortable: true,
  37 + align: 'left',
  38 + render: function (row) {
  39 + return `<i class="iconfont 22222" style="font-size: 22px;margin-right: 10px;"></i><span>${row.fileName}</span>`
  40 + }
  41 + }
  42 + ]);
  43 +
  44 + let dataList = Vue.ref([]);
  45 + let currentPage = Vue.ref(1);
  46 + let total = Vue.ref(0);
  47 +
  48 + // 获取表格树
  49 + let getPage = () => {
  50 +
  51 + }
  52 +
  53 +
  54 + return {
  55 + columns,
  56 + height,
  57 + dataList,
  58 + currentPage,
  59 + total,
  60 + getPage
  61 + }
  62 + }
  63 +}
@@ -8,263 +8,10 @@ @@ -8,263 +8,10 @@
8 </el-col> 8 </el-col>
9 <!-- 右侧显示 --> 9 <!-- 右侧显示 -->
10 <el-col :span="19" class='col-class'> 10 <el-col :span="19" class='col-class'>
11 -  
12 - <!-- 表单 -->  
13 - <div>  
14 - <el-form  
15 - :model="ruleForm"  
16 - label-width="120px"  
17 - size="small"  
18 - >  
19 - <el-row>  
20 - <el-col :span="8">  
21 - <el-form-item label="姓名" prop="nickname" class="form-class">  
22 - <el-input v-model="ruleForm.nickname" style='width: 190px;'></el-input>  
23 - </el-form-item>  
24 - <el-form-item label="性别" prop="sex" class="form-class">  
25 - <el-radio-group v-model="ruleForm.sex">  
26 - <el-radio label="1"></el-radio>  
27 - <el-radio label="0"></el-radio>  
28 - </el-radio-group>  
29 - </el-form-item>  
30 - <el-form-item label="学历" prop="education" class="form-class">  
31 - <el-input v-model="ruleForm.education" style='width: 190px;'></el-input>  
32 - </el-form-item>  
33 - <el-form-item label="手机号" prop="name" class="form-class">  
34 - <el-input v-model="ruleForm.phone" style='width: 190px;'></el-input>  
35 - </el-form-item>  
36 - <el-form-item label="电子邮箱" prop="name" class="form-class">  
37 - <el-input v-model="ruleForm.email" style='width: 190px;'></el-input>  
38 - </el-form-item>  
39 -  
40 - <el-form-item label="入职时间" prop="name" class="form-class">  
41 - <el-date-picker  
42 - v-model="ruleForm.entryTime"  
43 - type="date"  
44 - style='width: 190px;'  
45 - placeholder="选择日期">  
46 - </el-date-picker>  
47 - </el-form-item>  
48 - <el-form-item label="获得证书" prop="name" class="form-class">  
49 - <el-input v-model="ruleForm.certificate" style='width: 190px;'></el-input>  
50 - </el-form-item>  
51 - </el-col>  
52 - <el-col :span="8">  
53 - <el-form-item label="所在公司" prop="name" class="form-class">  
54 - <el-input v-model="ruleForm.company" style='width: 190px;'></el-input>  
55 - </el-form-item>  
56 - <el-form-item label="年龄" prop="name" class="form-class">  
57 - <el-input v-model="ruleForm.age" style='width: 190px;'></el-input>  
58 - </el-form-item>  
59 - <el-form-item label="毕业院校" prop="name" class="form-class">  
60 - <el-input v-model="ruleForm.university" style='width: 190px;'></el-input>  
61 - </el-form-item>  
62 - <el-form-item label="座机号码" prop="name" class="form-class">  
63 - <el-input v-model="ruleForm.tel" style='width: 190px;'></el-input>  
64 - </el-form-item>  
65 - <el-form-item label="家庭住址" prop="name" class="form-class">  
66 - <el-input v-model="ruleForm.post" style='width: 190px;'></el-input>  
67 - </el-form-item>  
68 - <el-form-item label="离职时间" prop="name" class="form-class">  
69 - <el-date-picker  
70 - v-model="ruleForm.quitTime"  
71 - type="date"  
72 - style='width: 190px;'  
73 - placeholder="选择日期">  
74 - </el-date-picker>  
75 - </el-form-item>  
76 - </el-col>  
77 - <el-col :span="8">  
78 - <el-image style="width: 200px; height: 200px" :src="imageUrl"></el-image>  
79 - <el-upload  
80 - class="upload-demo"  
81 - :show-file-list="false"  
82 - action=""  
83 - :on-preview="handlePreview"  
84 - :on-remove="handleRemove"  
85 - :before-remove="beforeRemove"  
86 - :http-request="uploadFile"  
87 - multiple  
88 - :limit="3"  
89 - :on-exceed="handleExceed"  
90 - >  
91 - <el-button size="small" type="primary">上传照片</el-button>  
92 - </el-upload>  
93 - </el-col>  
94 - </el-row>  
95 - <div style="text-align: center;">  
96 - <el-button type="primary" size="small" @click="handleSave">保存</el-button>  
97 - </div>  
98 - <!-- <el-form-item>  
99 - <el-button type="primary" @click="submitForm('ruleForm')"  
100 - >Create</el-button  
101 - >  
102 - <el-button @click="resetForm('ruleForm')">Reset</el-button>  
103 - </el-form-item> -->  
104 - </el-form>  
105 - </div>  
106 - <!-- 图标echarts -->  
107 - <el-row>  
108 - <el-col :span="12">  
109 - <div id="main" style="width: 500px;height:600px;"></div>  
110 - </el-col>  
111 - <el-col :span="12">  
112 - <div id="score" style="width: 600px;height:400px;"></div>  
113 - </el-col>  
114 - </el-row>  
115 - <!-- 点击柱状图弹框 -->  
116 - <el-dialog  
117 - v-model="dialogVisible"  
118 - title="3月各项评分"  
119 - width="60%"  
120 - :before-close="handleClose"  
121 - >  
122 - <el-table border :data="tableData" stripe @cell-dblclick='handleCell' header-row-class-name="tbl-header-class" style="width: 100%;margin: 20px 0;">  
123 - <el-table-column prop="date" label="分类" align="center" min-width="100" />  
124 - <el-table-column prop="date" label="项目" align="center" min-width="100" />  
125 - <el-table-column prop="name" label="分值" align="center" min-width="100" />  
126 - <el-table-column prop="name" label="打分人" align="center" min-width="100"/>  
127 - <el-table-column prop="name" label="得分" align="center" min-width="100">  
128 - <template #default="scope">  
129 - <el-input v-model="scope.row.name" style='width: 80px;'></el-input>  
130 - </template>  
131 - </el-table-column>  
132 - <el-table-column prop="name" label="扣分原因" align="center" min-width="100">  
133 - <template #default="scope">  
134 - <el-input v-model="scope.row.name" style='width: 80px;'></el-input>  
135 - </template>  
136 - </el-table-column>  
137 - </el-table>  
138 - <template #footer>  
139 - <span class="dialog-footer">  
140 - <el-button type="primary" size="small" @click="dialogVisible = false">确认</el-button>  
141 - <el-button size="small"@click="dialogVisible = false">关闭</el-button>  
142 - </span>  
143 - </template>  
144 - </el-dialog>  
145 - <!-- 上传下载预览-->  
146 - <div>  
147 - <el-row>  
148 - <el-col :span="12" style='text-align: left;'>  
149 - <el-input v-model="name" placeholder="请输入内容" size="small" style='width: 150px;margin-right: 10px;'></el-input>  
150 - <el-button type="primary" size="small" @click="onSearchs">查询</el-button>  
151 - </el-col>  
152 - <el-col :span="12" style='text-align: right;display: flex;'>  
153 - <!-- <el-button type="primary" size="small" @click="dialogVisible = false">预览</el-button> -->  
154 - <!-- 上传 -->  
155 - <el-upload  
156 - class="upload-demo"  
157 - action="https://jsonplaceholder.typicode.com/posts/"  
158 - :on-change="handleChange"  
159 - :file-list="fileList"  
160 - :show-file-list="false"  
161 - >  
162 - <el-button size="small" type="primary">上传</el-button>  
163 - </el-upload>  
164 - <!-- 下载 -->  
165 - <el-button type="primary" size="small" @click="dialogVisible = false" style='margin-left:10px;'>下载</el-button>  
166 - <el-button type="primary" size="small" @click="handleEmpower">授权</el-button>  
167 - </el-col>  
168 - </el-row>  
169 - <el-tabs v-model="activeName" @tab-click="handleClick">  
170 - <el-tab-pane label="<" name="first">  
171 - <el-table :data="tableData" header-row-class-name="tbl-header-class" height="600px" style="width: 100%;margin: 20px 0;">  
172 - <el-table-column type="selection" align="center" width="55"/>  
173 - <el-table-column type="index" label="序号" align="center" width="50" />  
174 - <el-table-column prop="date" label="文档名称" min-width="400" >  
175 - <template #default="scope">  
176 - <el-link type="primary" @click="openDetailPage(scope.row)">{{scope.row.date}}</el-link>  
177 - </template>  
178 - </el-table-column>  
179 - <el-table-column prop="name" label="提交人" align="center" width="180" />  
180 - <el-table-column prop="name" label="提交时间" align="center" width="180" />  
181 - <el-table-column prop="name" label="操作" width="180" >  
182 - <template #default="scope">  
183 - <el-button type="primary" size="small" @click="dialogVisible = false">下载</el-button>  
184 - <el-button type="primary" size="small" @click="handleEmpower">授权</el-button>  
185 - </template>  
186 - </el-table-column>  
187 - </el-table>  
188 - <div style='text-align: left;'>  
189 - <el-pagination  
190 - @size-change="handleSizeChange"  
191 - @current-change="handleCurrentChange"  
192 - :current-page="currentPage4"  
193 - :page-sizes="[100, 200, 300, 400]"  
194 - :page-size="100"  
195 - layout="total, sizes, prev, pager, next, jumper"  
196 - :total="400">  
197 - </el-pagination>  
198 - </div>  
199 - </el-tab-pane>  
200 - <el-tab-pane label=">" name="second">  
201 - <el-table :data="tableData" header-row-class-name="tbl-header-class" height="600px" style="width: 100%;margin: 20px 0;">  
202 - <el-table-column type="selection" align="center" width="55"/>  
203 - <el-table-column type="index" label="序号" align="center" width="50" />  
204 - <el-table-column prop="date" label="文档名称" min-width="400" >  
205 - <template #default="scope">  
206 - <img style="width: 50px; height: 50px" src="./1.png"/>  
207 - <el-link type="primary" @click="openDetailPage(scope.row)">{{scope.row.date}}</el-link>  
208 - </template>  
209 - </el-table-column>  
210 - <el-table-column prop="name" label="提交人" align="center" width="180" />  
211 - <el-table-column prop="name" label="提交时间" align="center" width="180" />  
212 - <el-table-column prop="name" label="操作" width="180" >  
213 - <template #default="scope">  
214 - <el-button type="primary" size="small" @click="dialogVisible = false">下载</el-button>  
215 - <el-button type="primary" size="small" @click="handleEmpower">授权</el-button>  
216 - </template>  
217 - </el-table-column>  
218 - </el-table>  
219 - <div style='text-align: left;'>  
220 - <el-pagination  
221 - @size-change="handleSizeChange"  
222 - @current-change="handleCurrentChange"  
223 - :current-page="currentPage4"  
224 - :page-sizes="[100, 200, 300, 400]"  
225 - :page-size="100"  
226 - layout="total, sizes, prev, pager, next, jumper"  
227 - :total="400">  
228 - </el-pagination>  
229 - </div>  
230 - </el-tab-pane>  
231 - </el-tabs>  
232 -  
233 - <el-dialog  
234 - v-model="dialogVisibles"  
235 - title="授权"  
236 - width="50%"  
237 - :before-close="handleClose"  
238 - >  
239 - <el-transfer  
240 - v-model="leftValue"  
241 - style="text-align: left; display: inline-block"  
242 - filterable  
243 - :left-default-checked="[2, 3]"  
244 - :right-default-checked="[1]"  
245 - :render-content="renderFunc"  
246 - :titles="['Source', 'Target']"  
247 - :button-texts="[' ', ' ']"  
248 - :format="{  
249 - noChecked: '${total}',  
250 - hasChecked: '${checked}/${total}',  
251 - }"  
252 - :data="data"  
253 - @change="handleChange"  
254 - >  
255 - <template #left-footer>  
256 - <el-button class="transfer-footer" size="small">Operation</el-button>  
257 - </template>  
258 - <template #right-footer>  
259 - <el-button class="transfer-footer" size="small">Operation</el-button>  
260 - </template>  
261 - </el-transfer>  
262 - <div style="margin-top: 30px;">  
263 - <el-button type="primary" size="small" @click="dialogVisibles = false">保存</el-button>  
264 - <el-button size="small"@click="dialogVisibles = false">关闭</el-button>  
265 - </div>  
266 - </el-dialog>  
267 - </div> 11 + <!-- 失活的组件将会被缓存!-->
  12 + <keep-alive>
  13 + <component v-bind:is="componentName"></component>
  14 + </keep-alive>
268 </el-col> 15 </el-col>
269 </el-row> 16 </el-row>
270 </div> 17 </div>
@@ -2,262 +2,42 @@ export default { @@ -2,262 +2,42 @@ export default {
2 name: 'operationMaintenance', 2 name: 'operationMaintenance',
3 template: '', 3 template: '',
4 components: { 4 components: {
5 - 'uploadImage': Vue.defineAsyncComponent(  
6 - () => myImport('components/common/uploadImage/index')  
7 - ), 5 + // 所有汇总
  6 + 'COLLECT_ALL': Vue.defineAsyncComponent(
  7 + () => myImport('components/page/operationMaintenance/project/index')
  8 + ),
  9 + // 人员汇总
  10 + 'COLLECT_USER': Vue.defineAsyncComponent(
  11 + () => myImport('components/page/operationMaintenance/ry/index')
  12 + ),
  13 + // 评价汇总
  14 + 'COLLECT_EVALUATE': Vue.defineAsyncComponent(
  15 + () => myImport('components/page/operationMaintenance/pj/index')
  16 + ),
  17 + // 资料汇总
  18 + 'COLLECT_MATERIAL': Vue.defineAsyncComponent(
  19 + () => myImport('components/page/operationMaintenance/zl/index')
  20 + ),
  21 + //文档
  22 + 'DOCUMENT': Vue.defineAsyncComponent(
  23 + () => myImport('components/page/operationMaintenance/doc/index')
  24 + ),
  25 + // 评分图(项目评价具体年份)
  26 + 'EVALUATE': Vue.defineAsyncComponent(
  27 + () => myImport('components/page/operationMaintenance/pjt/index')
  28 + ),
  29 + // 人员信息
  30 + 'USER': Vue.defineAsyncComponent(
  31 + () => myImport('components/page/operationMaintenance/user/index')
  32 + ),
8 }, 33 },
9 setup() { 34 setup() {
10 const { proxy } = Vue.getCurrentInstance() 35 const { proxy } = Vue.getCurrentInstance()
11 - let activeName= Vue.ref('first')  
12 -  
13 - let imageUrl = Vue.ref('')  
14 - let rowData = Vue.ref('5')  
15 - let dialogVisible = Vue.ref(false)  
16 - let dialogVisibles = Vue.ref(false)  
17 let dataSource = Vue.ref([]); 36 let dataSource = Vue.ref([]);
18 - let tableDataFile = Vue.ref([]);  
19 - let tableDataPersonnel = Vue.ref([]);  
20 - let tableDataEvaluate = Vue.ref([]);  
21 - let tableDataProject = Vue.ref([]);  
22 - let tableData = Vue.ref([  
23 - {  
24 - date: '2016-05-03',  
25 - name: '√',  
26 - address: '√',  
27 - },  
28 - {  
29 - date: '2016-05-02',  
30 - name: '×',  
31 - address: '×',  
32 - },  
33 - {  
34 - date: '2016-05-04',  
35 - name: '×',  
36 - address: '×',  
37 - },  
38 - {  
39 - date: '2016-05-01',  
40 - name: 'Tom',  
41 - address: 'No. 189, Grove St, Los Angeles',  
42 - },  
43 - {  
44 - date: '2016-05-01',  
45 - name: 'Tom',  
46 - address: 'No. 189, Grove St, Los Angeles',  
47 - },  
48 - {  
49 - date: '2016-05-01',  
50 - name: 'Tom',  
51 - address: 'No. 189, Grove St, Los Angeles',  
52 - },  
53 - ])  
54 - let ruleForm = Vue.reactive({  
55 - nickname:'',  
56 - sex: '',  
57 - phone: '',  
58 - tel: '',  
59 - email: '',  
60 - post: '',  
61 - headImgUrl: '',  
62 - age: '',  
63 - university: '',  
64 - education: '',  
65 - quitTime: '',  
66 - entryTime:'',  
67 - company: '',  
68 - certificate: ''  
69 - })  
70 -  
71 - // 分页信息  
72 - const pageInfo = Vue.reactive({  
73 - total: 0,  
74 - limit: 50,  
75 - page: 1,  
76 - keyWords:''  
77 - })  
78 -  
79 - // 柱状图  
80 - let init = () => {  
81 - // 基于准备好的dom,初始化echarts实例  
82 - var myChart = echarts.init(document.getElementById('main'));  
83 -  
84 - // 指定图表的配置项和数据  
85 - var option = {  
86 - xAxis: {  
87 - data: ['1月', '2月', '3月', '4月', '5月', '6月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']  
88 - },  
89 - yAxis: {},  
90 - series: [{  
91 - name: '销量',  
92 - type: 'bar',  
93 - data: [5, 20, 36, 10, 10, 20, 20, 36, 10, 10, 20, 10, 20],  
94 - itemStyle: { //上方显示数值  
95 - normal: {  
96 - label: {  
97 - show: true, //开启显示  
98 - position: 'top', //在上方显示  
99 - textStyle: { //数值样式  
100 - fontSize: 12  
101 - }  
102 - }  
103 - }  
104 - }  
105 - }]  
106 - };  
107 -  
108 - // 使用刚指定的配置项和数据显示图表。  
109 - myChart.setOption(option);  
110 - // 处理点击事件并且弹出数据名称  
111 - myChart.on('click', function (params) {  
112 - console.log(params);  
113 - dialogVisible.value = true  
114 - });  
115 - }  
116 - // 饼状图  
117 - let inits = () => {  
118 - // 基于准备好的dom,初始化echarts实例  
119 - var myCharts = echarts.init(document.getElementById('score'));  
120 - // 接口  
121 - var arr=[]  
122 - proxy.$http.post("/api-web/manage/ddic/findSucDdics/OPS_SECOND_PARTY?",'', function (res) {  
123 - if (res && res.data) {  
124 - res.data.forEach(item=>{  
125 - arr.push({value:item.ddicDesc,name:item.ddicName})  
126 - })  
127 - // 指定图表的配置项和数据  
128 - var option = {  
129 - title: {  
130 - text: '评分分类值占比'  
131 - },  
132 - tooltip:{  
133 - triggeer:'item',  
134 - formatter: '{b} : {c} ({d}%)'  
135 - },  
136 - series : [  
137 - {  
138 - name: '访问来源',  
139 - type: 'pie', // 设置图表类型为饼图  
140 - radius: '40%', // 饼图的半径,外半径为可视区尺寸(容器高宽中较小一项)的 55% 长度。  
141 - center: ["35%", "53%"],  
142 - data:arr,  
143 - label:{  
144 - normal:{  
145 - show: true,  
146 - formatter: '{b}:({d}%)'  
147 - },  
148 - labelLine :{show:true}  
149 - }  
150 - }  
151 - ],  
152 - };  
153 - // 使用刚指定的配置项和数据显示图表。  
154 - myCharts.setOption(option);  
155 - } else {  
156 - proxy.$global.showMsg('暂无数据!');  
157 - }  
158 - })  
159 -  
160 - }  
161 -  
162 - // 人员信息总汇  
163 - let getListPersonnel=()=>{  
164 - proxy.$http.get("/api-web/bOpsProject/page", params, function (res) {  
165 - if (res && res.data) {  
166 - tableDataPersonnel.value = res.data;  
167 - } else {  
168 - proxy.$global.showMsg('暂无数据!');  
169 - }  
170 - },function (){  
171 - proxy.$global.showMsg('没有查询到记录!');  
172 - });  
173 - }  
174 -  
175 - // 项目评价总汇  
176 - let getListEvaluate=()=>{  
177 - proxy.$http.get("/api-web/bOpsFile/page", params, function (res) {  
178 - if (res && res.data) {  
179 - tableDataEvaluate.value = res.data;  
180 - } else {  
181 - proxy.$global.showMsg('暂无数据!');  
182 - }  
183 - },function (){  
184 - proxy.$global.showMsg('没有查询到记录!');  
185 - });  
186 - } 37 + let componentName = Vue.ref('COLLECT_ALL');
187 38
188 - // 项目资料总汇  
189 - let getListProject=()=>{  
190 - proxy.$http.get("/api-web/bOpsProject/page", params, function (res) {  
191 - if (res && res.data) {  
192 - tableDataProject.value = res.data;  
193 - } else {  
194 - proxy.$global.showMsg('暂无数据!');  
195 - }  
196 - },function (){  
197 - proxy.$global.showMsg('没有查询到记录!');  
198 - });  
199 - }  
200 -  
201 - //文档上传下载  
202 - let getListFile=()=>{  
203 - proxy.$http.get("/api-web/bOpsFile/page", params, function (res) {  
204 - if (res && res.data) {  
205 - tableDataFile.value = res.data;  
206 - } else {  
207 - proxy.$global.showMsg('暂无数据!');  
208 - }  
209 - },function (){  
210 - proxy.$global.showMsg('没有查询到记录!');  
211 - });  
212 - }  
213 -  
214 - //信息保存  
215 - let handleSave=(data)=>{  
216 - proxy.$http.post("/api-web/bOpsPerson/saveOrUpdate", ruleForm, function (res) {  
217 - if (res && res.data) {  
218 - proxy.$global.showMsg('保存成功!');  
219 - } else {  
220 - proxy.$global.showMsg('暂无数据!');  
221 - }  
222 - },function (){  
223 - proxy.$global.showMsg('没有查询到记录!');  
224 - });  
225 - }  
226 -  
227 - let handleEmpower=(node, data)=> {  
228 - dialogVisibles.value=true  
229 - }  
230 - // 上传  
231 - let uploadFile=(res, file)=> {  
232 - // let url=URL.createObjectURL(res.raw)  
233 - debugger  
234 - const formData = new FormData()  
235 - formData.append('files', file)  
236 - formData.append('customerId', 'platform')  
237 - formData.append('businessTypeKey', 'admin1')  
238 - formData.append('busibessJoin', '')  
239 - console.log(res,111)  
240 - console.log(file,222)  
241 -  
242 - }  
243 - // 下载  
244 - let handkeDownload=()=>{  
245 - proxy.$http.downloadFile(`/api-web/assets/configmanager/resource/assets?resId=${id}`, {}, function (res) {  
246 - if (res && res.map) {  
247 -  
248 - }  
249 - })  
250 - }  
251 -  
252 - let handleCell=(row)=>{  
253 - // this.$set(row,'show',true)  
254 - console.log(data)  
255 - }  
256 - let handleThree=(row)=>{  
257 - // emit('openDetailPage',row)  
258 - }  
259 // 搜索 39 // 搜索
260 - let onSearch = () => { 40 + let getTree = () => {
261 var params = { 41 var params = {
262 // page: pageInfo.page, 42 // page: pageInfo.page,
263 // limit: pageInfo.limit, 43 // limit: pageInfo.limit,
@@ -273,41 +53,20 @@ export default { @@ -273,41 +53,20 @@ export default {
273 proxy.$global.showMsg('没有查询到记录!'); 53 proxy.$global.showMsg('没有查询到记录!');
274 }); 54 });
275 } 55 }
  56 +
276 let handleNodeClick=(data)=> { 57 let handleNodeClick=(data)=> {
277 - console.log(data.label,999) 58 + let comName= data.map.nodeType.view.code;
  59 + console.log(comName)
  60 + componentName.value = comName;
278 } 61 }
279 Vue.onMounted(() => { 62 Vue.onMounted(() => {
280 - onSearch()  
281 - init()  
282 - inits() 63 + getTree();
283 }) 64 })
284 // 搜索 65 // 搜索
285 return { 66 return {
286 - activeName,  
287 - ruleForm,  
288 - handleSave,  
289 - getListFile,  
290 - tableDataFile,  
291 - tableDataPersonnel,  
292 - tableDataEvaluate,  
293 - tableDataProject,  
294 - getListPersonnel,  
295 - getListEvaluate,  
296 - getListProject,  
297 - handleNodeClick,  
298 - onSearch,  
299 - handkeDownload,  
300 - imageUrl,  
301 - uploadFile,  
302 - handleEmpower,  
303 - dialogVisibles,  
304 - dialogVisible,  
305 - handleCell,  
306 - rowData,  
307 - pageInfo,  
308 - tableData,  
309 dataSource, 67 dataSource,
310 - handleThree, 68 + handleNodeClick,
  69 + componentName
311 }; 70 };
312 }, 71 },
313 -}  
  72 +}