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 | +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 | +} |
-
Please register or login to post a comment