Commit 04aebc72652a16ff79c0bdac0d4bd4d8f99d870d

Authored by 周超
1 parent 430a7547

11

src/api/user.js
@@ -165,10 +165,15 @@ export function UserInfo_List(params) { @@ -165,10 +165,15 @@ export function UserInfo_List(params) {
165 url: `/UserInfo/List`, 165 url: `/UserInfo/List`,
166 method: 'get', 166 method: 'get',
167 params 167 params
168 - })  
169 - 168 + })
  169 +}
170 170
171 - 171 +export function GetTypeSetting(params={}) {
  172 + return request({
  173 + url: `/userType/GetTypeSetting`,
  174 + method: 'get',
  175 + params
  176 + })
172 } 177 }
173 //设置标签 178 //设置标签
174 export function ChangeTags(params) { 179 export function ChangeTags(params) {
@@ -177,4 +182,22 @@ export function UserInfo_List(params) { @@ -177,4 +182,22 @@ export function UserInfo_List(params) {
177 method: 'post', 182 method: 'post',
178 params 183 params
179 }) 184 })
180 -}  
181 \ No newline at end of file 185 \ No newline at end of file
  186 +}
  187 +
  188 +
  189 +//用户列表
  190 +export function UserTypeSettings(params) {
  191 + return request({
  192 + url: `/userType/GetSettings`,
  193 + method: 'post',
  194 + params
  195 + })
  196 +}
  197 +
  198 +export function saveTypeSetting(data) {
  199 + return request({
  200 + url: `/userType/saveTypeSetting`,
  201 + method: 'post',
  202 + data
  203 + })
  204 +}
182 \ No newline at end of file 205 \ No newline at end of file
src/utils/routerList.js
@@ -230,6 +230,10 @@ export function getRoutes() { @@ -230,6 +230,10 @@ export function getRoutes() {
230 title: '图片导入用户', 230 title: '图片导入用户',
231 } 231 }
232 }, 232 },
  233 +
  234 +
  235 +
  236 +
233 { 237 {
234 path: 'admin', 238 path: 'admin',
235 name: 'admin', 239 name: 'admin',
@@ -251,7 +255,18 @@ export function getRoutes() { @@ -251,7 +255,18 @@ export function getRoutes() {
251 title: '系统管理', 255 title: '系统管理',
252 icon: 'el-icon-s-platform' 256 icon: 'el-icon-s-platform'
253 }, 257 },
254 - children: [{ 258 + children: [
  259 + {
  260 + path: 'userdimset',
  261 + name: 'impouserdimsetrtuser',
  262 +
  263 + component: () =>
  264 + import('@/views/user/userdimset'),
  265 + meta: {
  266 + title: '维度规则设置',
  267 + }
  268 + },
  269 + {
255 path: 'index', 270 path: 'index',
256 name: 'index', 271 name: 'index',
257 component: () => 272 component: () =>
src/views/TestPaper/ManualTestPaper.vue
@@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
18 <draggable :options="{animation:380,filter:'.unmover'}" group="itxst" v-model="arr1" @end="end1" 18 <draggable :options="{animation:380,filter:'.unmover'}" group="itxst" v-model="arr1" @end="end1"
19 @add="RemoveHere" :move="onMove" class="infinite-list" :style="{'height':contentHeight-80+'px'}" 19 @add="RemoveHere" :move="onMove" class="infinite-list" :style="{'height':contentHeight-80+'px'}"
20 infinite-scroll-disabled="disabled" v-infinite-scroll="load" style="overflow:auto"> 20 infinite-scroll-disabled="disabled" v-infinite-scroll="load" style="overflow:auto">
21 - 21 +
22 <li v-for="i in arr1" class="infinite-list-item" :key="i.id" v-if="!classarr.some(o=>o == i.id)">{{ 22 <li v-for="i in arr1" class="infinite-list-item" :key="i.id" v-if="!classarr.some(o=>o == i.id)">{{
23 i.subject }}</li> 23 i.subject }}</li>
24 <p v-if="loading" style="text-align: center;color: #cdcdcd;" class="unmover">加载中...</p> 24 <p v-if="loading" style="text-align: center;color: #cdcdcd;" class="unmover">加载中...</p>
@@ -69,17 +69,24 @@ @@ -69,17 +69,24 @@
69 {{TestPaper.TotalScore || ''}} 69 {{TestPaper.TotalScore || ''}}
70 </el-form-item> 70 </el-form-item>
71 71
72 -  
73 - <el-form-item label="分类" class="el-form-item-custom"> 72 + <el-form-item label="工种" prop="UserTypeOfWork" required class="el-form-item-custom"
  73 + style="margin-bottom: 20px !important;width:100%;">
  74 + <el-select v-model="TestPaper.UserTypeOfWork" placeholder="请选择工种" style="width:100%">
  75 + <el-option v-for="item in usertypelist" :label="item.name" :value="item.id"></el-option>
  76 + </el-select>
  77 + </el-form-item>
  78 + <el-form-item label="分类" class="el-form-item-custom" prop="QuestionClassId" >
74 <el-cascader class="testpaper-input" v-model="TestPaper.QuestionClassId" 79 <el-cascader class="testpaper-input" v-model="TestPaper.QuestionClassId"
75 - style="width:400px;margin-bottom: 20px;" :props="{emitPath:false}" :clearable=true 80 + style="width:100%;margin-bottom: 20px;" :props="{emitPath:false}" :clearable=true
76 :options="QuestionClass"> 81 :options="QuestionClass">
77 </el-cascader> 82 </el-cascader>
78 </el-form-item> 83 </el-form-item>
79 84
  85 +
  86 +
80 <el-form-item label="有效时间" required> 87 <el-form-item label="有效时间" required>
81 - <el-form-item prop="date1">  
82 - <el-date-picker v-model="TestPaper.date" @change="changetimestartend" type="datetimerange" 88 + <el-form-item prop="date">
  89 + <el-date-picker v-model="TestPaper.date" @change="changetimestartend" type="datetimerange"
83 format="yyyy-MM-dd hh:mm:ss" range-separator="至" start-placeholder="开始时间" style="width:100%" 90 format="yyyy-MM-dd hh:mm:ss" range-separator="至" start-placeholder="开始时间" style="width:100%"
84 end-placeholder="结束时间"> 91 end-placeholder="结束时间">
85 </el-date-picker> 92 </el-date-picker>
@@ -120,19 +127,19 @@ @@ -120,19 +127,19 @@
120 </el-row> 127 </el-row>
121 128
122 129
123 - 130 +
124 <el-dialog title="随机抽题" :visible.sync="dialogTableVisible"> 131 <el-dialog title="随机抽题" :visible.sync="dialogTableVisible">
  132 +
125 <ul class="random-list"> 133 <ul class="random-list">
126 <li v-for="(item,index) in randomSubjectList" :key="index"> 134 <li v-for="(item,index) in randomSubjectList" :key="index">
127 <span>试题分类:</span> 135 <span>试题分类:</span>
128 - <el-cascader  
129 - style="flex:1"  
130 - v-model="item.QuestionClassId"  
131 - :options="randomQuestionTypeList"  
132 - clearable></el-cascader> 136 + <el-cascader :multiple="false" style="flex:1" v-model="item.QuestionClassId" :options="randomQuestionTypeList"
  137 + clearable></el-cascader>
133 <span style="margin-left:10px;">试题数量:</span> 138 <span style="margin-left:10px;">试题数量:</span>
134 - <el-input-number v-model="item.Count" :min="1" :max="100" label="描述文字" style="margin-left:10px;"></el-input-number>  
135 - <i class="el-icon-remove-outline" @click="changeSubjectCount(-1,index)" style="margin-left:10px;color:#f56c6c;"></i> 139 + <el-input-number v-model="item.Count" :min="1" :max="100" label="描述文字" style="margin-left:10px;">
  140 + </el-input-number>
  141 + <i class="el-icon-remove-outline" @click="changeSubjectCount(-1,index)"
  142 + style="margin-left:10px;color:#f56c6c;"></i>
136 <i class="el-icon-circle-plus" @click="changeSubjectCount(1)" style="margin-left:10px;color:#67C23A;"></i> 143 <i class="el-icon-circle-plus" @click="changeSubjectCount(1)" style="margin-left:10px;color:#67C23A;"></i>
137 </li> 144 </li>
138 </ul> 145 </ul>
@@ -145,148 +152,171 @@ @@ -145,148 +152,171 @@
145 </div> 152 </div>
146 </template> 153 </template>
147 <style lang="scss" scoped> 154 <style lang="scss" scoped>
148 -.random-list {  
149 - display: flex;  
150 - flex-direction: column;  
151 - li {  
152 - margin-bottom: 20px; 155 + .random-list {
153 display: flex; 156 display: flex;
154 - align-items: center;  
155 - [class^="el-icon"] {  
156 - font-size: 24px;  
157 - cursor: pointer; 157 + flex-direction: column;
  158 +
  159 + li {
  160 + margin-bottom: 20px;
  161 + display: flex;
  162 + align-items: center;
  163 +
  164 + [class^="el-icon"] {
  165 + font-size: 24px;
  166 + cursor: pointer;
  167 + }
158 } 168 }
159 } 169 }
160 -}  
161 </style> 170 </style>
162 <script> 171 <script>
163 -import draggable from "vuedraggable";  
164 -import { PostRandomGetQuestion, getQuestionList,getQuestionClassList } from "@/api/QuestionBank";  
165 -import { GetQuestionClassByType } from "@/api/QuestionClass";  
166 -import { EditTestPaper, GetToplevel } from "@/api/TestPaper";  
167 -import { formatTime } from "@/utils/util";  
168 -export default {  
169 - //注册draggable组件  
170 - components: {  
171 - draggable,  
172 - },  
173 - data() {  
174 - return {  
175 - randomSubjectList: [  
176 - {  
177 - QuestionClassId: "",  
178 - Count: "",  
179 - },  
180 - {  
181 - QuestionClassId: "",  
182 - Count: "",  
183 - },  
184 - ],  
185 - randomQuestionTypeList: [],  
186 - dynamicValidateForm: {  
187 - domains: [ 172 + import draggable from "vuedraggable";
  173 + import { PostRandomGetQuestion, getQuestionList, getQuestionClassList } from "@/api/QuestionBank";
  174 + import { GetQuestionClassByType } from "@/api/QuestionClass";
  175 + import { EditTestPaper, GetToplevel } from "@/api/TestPaper";
  176 + import { formatTime } from "@/utils/util";
  177 + import {
  178 + GetTypeSetting
  179 + } from '@/api/user'
  180 + export default {
  181 + //注册draggable组件
  182 + components: {
  183 + draggable,
  184 + },
  185 + data() {
  186 + return {
  187 + randomSubjectList: [
188 { 188 {
189 - value: "", 189 + QuestionClassId: "",
  190 + Count: "",
190 }, 191 },
191 - ],  
192 - email: "",  
193 - },  
194 - dialogTableVisible: false,  
195 - loadingType: false,  
196 - activeTab: "6",  
197 - parameter: {  
198 - pageIndex: 0,  
199 - pageSize: 20,  
200 - sort: "id",  
201 - sortOrder: 1,  
202 - keyWord: "",  
203 - QuestionClassId: 6,  
204 - status: 1,  
205 - },  
206 - contentHeight: 0,  
207 - count: 0,  
208 - edit: false,  
209 - arr1: [],  
210 - arr2: [],  
211 - classarr: [],  
212 - moveId: -1,  
213 - TestPaper: {  
214 - TestPaperTitle: "未命名试卷标题",  
215 - TestPaperClassId: 0,  
216 - TotalScore: 0,  
217 - Describe: "",  
218 - SingleNumber: 0,  
219 - MultipleNumber: 0,  
220 - SubjectiveNumber: 0,  
221 - OriginalPrice: "0",  
222 - PresentPrice: "0",  
223 - MembershipPrice: "0",  
224 - QuestionBankIds: [],  
225 - },  
226 - loading: false,  
227 - rules: {  
228 - OriginalPrice: [  
229 { 192 {
230 - required: true,  
231 - message: "不能为空", 193 + QuestionClassId: "",
  194 + Count: "",
232 }, 195 },
233 ], 196 ],
234 - PresentPrice: [  
235 - {  
236 - required: true,  
237 - message: "不能为空",  
238 - },  
239 - ],  
240 - MembershipPrice: [ 197 + randomQuestionTypeList: [],
  198 + dynamicValidateForm: {
  199 + domains: [
  200 + {
  201 + value: "",
  202 + },
  203 + ],
  204 + email: "",
  205 + },
  206 + usertypelist: [], //工种
  207 + dialogTableVisible: false,
  208 + loadingType: false,
  209 + activeTab: "6",
  210 + parameter: {
  211 + pageIndex: 0,
  212 + pageSize: 20,
  213 + sort: "id",
  214 + sortOrder: 1,
  215 + keyWord: "",
  216 + QuestionClassId: 6,
  217 + status: 1,
  218 + },
  219 + contentHeight: 0,
  220 + count: 0,
  221 + edit: false,
  222 + arr1: [],
  223 + arr2: [],
  224 + classarr: [],
  225 + moveId: -1,
  226 + TestPaper: {
  227 + TestPaperTitle: "未命名试卷标题",
  228 + TestPaperClassId: 0,
  229 + TotalScore: 0,
  230 + Describe: "",
  231 + SingleNumber: 0,
  232 + MultipleNumber: 0,
  233 + SubjectiveNumber: 0,
  234 + OriginalPrice: "0",
  235 + PresentPrice: "0",
  236 + MembershipPrice: "0",
  237 + QuestionBankIds: [],
  238 + },
  239 + loading: false,
  240 + rules: {
  241 + OriginalPrice: [
  242 + {
  243 + required: true,
  244 + message: "不能为空",
  245 + },
  246 + ],
  247 + PresentPrice: [
  248 + {
  249 + required: true,
  250 + message: "不能为空",
  251 + },
  252 + ],
  253 + UserTypeOfWork: [
  254 + {
  255 + required: true,
  256 + message: "请选择工种",
  257 + },
  258 + ], QuestionClassId: [
  259 + {
  260 + required: true,
  261 + message: "请选择分类",
  262 + },
  263 + ],date: [
  264 + {
  265 + required: true,
  266 + message: "请选择时间段",
  267 + },
  268 + ],
  269 + },
  270 + QuestionClass: [],
  271 + treeData: [
241 { 272 {
242 - required: true,  
243 - message: "不能为空", 273 + value: 0,
  274 + label: "全部",
244 }, 275 },
245 ], 276 ],
  277 + timeout: 0,
  278 + };
  279 + },
  280 + watch: {
  281 + activeTab() {
  282 + console.log("activeTab watch");
  283 + this.search();
246 }, 284 },
247 - QuestionClass: [],  
248 - treeData: [  
249 - {  
250 - value: 0,  
251 - label: "全部", 285 + "parameter.keyWord": {
  286 + handler() {
  287 + clearTimeout(this.timeout);
  288 + this.timeout = setTimeout(() => {
  289 + this.search();
  290 + }, 200);
252 }, 291 },
253 - ],  
254 - timeout: 0,  
255 - };  
256 - },  
257 - watch: {  
258 - activeTab() {  
259 - console.log("activeTab watch");  
260 - this.search(); 292 + },
261 }, 293 },
262 - "parameter.keyWord": {  
263 - handler() {  
264 - clearTimeout(this.timeout);  
265 - this.timeout = setTimeout(() => {  
266 - this.search();  
267 - }, 200); 294 + computed: {
  295 + noMore() {
  296 + return this.arr1.length >= this.count;
  297 + },
  298 + disabled() {
  299 + return this.loading || this.noMore;
268 }, 300 },
269 }, 301 },
270 - },  
271 - computed: {  
272 - noMore() {  
273 - return this.arr1.length >= this.count; 302 + created() {
  303 + this.getQuestionClassListHeadler();
  304 + this.getQuestionClassListHeadler2();
  305 +
  306 +
  307 + GetTypeSetting({}).then(res => {
  308 + if (res.data) {
  309 + this.usertypelist = res.data || [];
  310 + }
  311 + });
274 }, 312 },
275 - disabled() {  
276 - return this.loading || this.noMore; 313 + mounted() {
  314 + //计算页面内容区域的高度
  315 + this.contentHeight = window.innerHeight - 90;
  316 + //this.GetList();
277 }, 317 },
278 - },  
279 - created() {  
280 - this.getQuestionClassListHeadler();  
281 - this.getQuestionClassListHeadler2();  
282 - },  
283 - mounted() {  
284 - //计算页面内容区域的高度  
285 - this.contentHeight = window.innerHeight - 90;  
286 - //this.GetList();  
287 - },  
288 - methods: {  
289 - getSubTree(id, list) { 318 + methods: {
  319 + getSubTree(id, list) {
290 let result = []; 320 let result = [];
291 result = list.filter((t) => t.ParentId == id); 321 result = list.filter((t) => t.ParentId == id);
292 if (result.length) { 322 if (result.length) {
@@ -294,7 +324,7 @@ export default { @@ -294,7 +324,7 @@ export default {
294 item.value = item.id; 324 item.value = item.id;
295 item.label = item.ClassificationName; 325 item.label = item.ClassificationName;
296 item.children = this.getSubTree(item.id, list); 326 item.children = this.getSubTree(item.id, list);
297 - if(!item.children || !item.children.length){ 327 + if (!item.children || !item.children.length) {
298 delete item.children; 328 delete item.children;
299 } 329 }
300 return item; 330 return item;
@@ -306,12 +336,12 @@ export default { @@ -306,12 +336,12 @@ export default {
306 let _this = this; 336 let _this = this;
307 getQuestionClassList().then((res) => { 337 getQuestionClassList().then((res) => {
308 let alllist = res.data.data; 338 let alllist = res.data.data;
309 - let list = alllist.filter(t=>!t.ParentId); 339 + let list = alllist.filter(t => !t.ParentId);
310 list = list.map((t) => { 340 list = list.map((t) => {
311 t.value = t.id; 341 t.value = t.id;
312 t.label = t.ClassificationName; 342 t.label = t.ClassificationName;
313 - t.children = this.getSubTree(t.id,alllist);  
314 - if(!t.children || !t.children.length){ 343 + t.children = this.getSubTree(t.id, alllist);
  344 + if (!t.children || !t.children.length) {
315 delete t.children; 345 delete t.children;
316 } 346 }
317 return t; 347 return t;
@@ -319,345 +349,359 @@ export default { @@ -319,345 +349,359 @@ export default {
319 this.randomQuestionTypeList = list; 349 this.randomQuestionTypeList = list;
320 }); 350 });
321 }, 351 },
322 - randomCancel() {  
323 - this.dialogTableVisible = false;  
324 - },  
325 - randomSubmit() {  
326 - let list = this.randomSubjectList;  
327 - if (list.findIndex((t) => !t.QuestionClassId || !t.QuestionClassId.length || !t.Count) > -1) {  
328 - this.$message.warning("参数不完整");  
329 - return;  
330 - }  
331 - list = list.map(t=>{  
332 - t.QuestionClassId = t.QuestionClassId.pop();  
333 - return t;  
334 - });  
335 - PostRandomGetQuestion(list).then((res) => {  
336 - let list = res.data.data;  
337 - this.arr2 = list; 352 + randomCancel() {
338 this.dialogTableVisible = false; 353 this.dialogTableVisible = false;
339 - if(!list.length){  
340 - this.$message.warning('所选分类没有试题'); 354 + },
  355 + randomSubmit() {
  356 + var list = JSON.parse(JSON.stringify(this.randomSubjectList));
  357 + if (list.findIndex((t) => !t.QuestionClassId || !t.QuestionClassId.length || !t.Count) > -1) {
  358 + this.$message.warning("参数不完整");
  359 + return;
341 } 360 }
342 - });  
343 - },  
344 - changeSubjectCount(type, index) {  
345 - if (type > 0) {  
346 - this.randomSubjectList.push({  
347 - QuestionClassId: "",  
348 - Count: "", 361 +
  362 + list = list.map(t => {
  363 + t.QuestionClassId = t.QuestionClassId.pop();
  364 + return t;
349 }); 365 });
350 - } else {  
351 - this.randomSubjectList.splice(index, 1);  
352 - }  
353 - },  
354 - randomSubject() {  
355 - this.dialogTableVisible = true;  
356 - },  
357 - submitForm(formName) {  
358 - this.$refs[formName].validate((valid) => {  
359 - if (valid) {  
360 - alert("submit!"); 366 + PostRandomGetQuestion(list).then((res) => {
  367 + let list = res.data.data;
  368 + this.arr2 = list;
  369 + this.dialogTableVisible = false;
  370 + if (!list.length) {
  371 + this.$message.warning('所选分类没有试题');
  372 + }
  373 + });
  374 + },
  375 + changeSubjectCount(type, index) {
  376 + if (type > 0) {
  377 + this.randomSubjectList.push({
  378 + QuestionClassId: "",
  379 + Count: "",
  380 + });
361 } else { 381 } else {
362 - console.log("error submit!!");  
363 - return false; 382 + this.randomSubjectList.splice(index, 1);
364 } 383 }
365 - });  
366 - },  
367 - resetForm(formName) {  
368 - this.$refs[formName].resetFields();  
369 - },  
370 - removeDomain(item) {  
371 - var index = this.dynamicValidateForm.domains.indexOf(item);  
372 - if (index !== -1) {  
373 - this.dynamicValidateForm.domains.splice(index, 1);  
374 - }  
375 - },  
376 - addDomain() {  
377 - this.dynamicValidateForm.domains.push({  
378 - value: "",  
379 - key: Date.now(),  
380 - });  
381 - },  
382 - changetimestartend(val, aa) {  
383 - this.TestPaper.EffectiveStartTime = formatTime(val[0]);  
384 - this.TestPaper.EffectiveEndTime = formatTime(val[1]);  
385 - },  
386 - search() {  
387 - this.parameter.pageIndex = 1;  
388 - this.parameter.QuestionClassId = Number(this.activeTab);  
389 - this.GetList();  
390 - },  
391 - SubmitTestPaper() {  
392 - this.TestPaper.QuestionBankIds = this.arr2.map((u) => u.id);  
393 - var d = this.TestPaper;  
394 - if (this.arr2.length > 0) {  
395 - EditTestPaper(this.TestPaper).then((res) => {  
396 - if (res.data.code == 200) {  
397 - this.$confirm("组卷成功!", "消息"); 384 + },
  385 + randomSubject() {
  386 + this.dialogTableVisible = true;
  387 + },
  388 + submitForm(formName) {
  389 + this.$refs[formName].validate((valid) => {
  390 + if (valid) {
  391 + alert("submit!");
398 } else { 392 } else {
399 - this.$confirm("组卷失败!", "消息"); 393 + console.log("error submit!!");
  394 + return false;
400 } 395 }
401 }); 396 });
402 - } else {  
403 - this.$confirm("试题没有题目!", "消息");  
404 - }  
405 - },  
406 - load() {  
407 - this.loading = true;  
408 - this.parameter.pageIndex++;  
409 - this.GetList();  
410 - this.loading = false;  
411 - },  
412 - GetList() {  
413 - if (this.parameter.QuestionClassId == "1") {  
414 - if (!this.loadingType)  
415 - GetQuestionClassByType({ ClassType: 2 }).then((res) => {  
416 - var classarr = res.data.data || [];  
417 - this.arr1 = classarr.map((rs) => {  
418 - rs.subject = rs.subjectName = rs.ClassificationName;  
419 - rs.type = "wd";  
420 - rs.subjectContent = "[]";  
421 - return rs;  
422 - });  
423 - this.loadingType = true;  
424 - });  
425 - } else {  
426 - getQuestionList(this.parameter).then((res) => {  
427 - if (this.parameter.pageIndex == 1) {  
428 - this.arr1 = []; 397 + },
  398 + resetForm(formName) {
  399 + this.$refs[formName].resetFields();
  400 + },
  401 + removeDomain(item) {
  402 + var index = this.dynamicValidateForm.domains.indexOf(item);
  403 + if (index !== -1) {
  404 + this.dynamicValidateForm.domains.splice(index, 1);
  405 + }
  406 + },
  407 + addDomain() {
  408 + this.dynamicValidateForm.domains.push({
  409 + value: "",
  410 + key: Date.now(),
  411 + });
  412 + },
  413 + changetimestartend(val, aa) {
  414 + this.TestPaper.EffectiveStartTime = formatTime(val[0]);
  415 + this.TestPaper.EffectiveEndTime = formatTime(val[1]);
  416 + },
  417 + search() {
  418 + this.parameter.pageIndex = 1;
  419 + this.parameter.QuestionClassId = Number(this.activeTab);
  420 + this.GetList();
  421 + },
  422 + SubmitTestPaper() {
  423 +
  424 + this.$refs['form'].validate((valid) => {
  425 + if (valid) {
  426 + this.TestPaper.QuestionBankIds = this.arr2.map((u) => u.id);
  427 + var d = this.TestPaper;
  428 + if (this.arr2.length > 0) {
  429 + EditTestPaper(this.TestPaper).then((res) => {
  430 + if (res.data.code == 200) {
  431 + this.$confirm("组卷成功!", "消息");
  432 + } else {
  433 + this.$confirm("组卷失败!", "消息");
  434 + }
  435 + });
  436 + } else {
  437 + this.$confirm("试题没有题目!", "消息");
  438 + }
  439 + } else {
  440 +
  441 + return false;
429 } 442 }
430 - res.data.data.rows.forEach((item, i) => {  
431 - this.arr1.push(item);  
432 - });  
433 - this.count = res.data.data.total;  
434 - this.$forceUpdate();  
435 }); 443 });
436 - }  
437 - },  
438 - end1(e) {  
439 - var that = this;  
440 - if (that.arr1.length < 10) {  
441 - this.load();  
442 - }  
443 444
444 - var items = this.arr2.filter(function (m) {  
445 - return m.id == that.moveId;  
446 - });  
447 445
448 - //如果左边  
449 - if (items.length < 2) return;  
450 - this.arr2.splice(e.newDraggableIndex, 1);  
451 446
452 - // SingleNumber:0,  
453 - // MultipleNumber:0,  
454 - // SubjectiveNumber:0,  
455 - },  
456 - //从右边移除到左边  
457 - RemoveHere(e) {  
458 - if (e.item._underlying_vm_.subjectType == 1) {  
459 - this.TestPaper.SingleNumber -= 1;  
460 - }  
461 - if (e.item._underlying_vm_.subjectType == 2) {  
462 - this.TestPaper.MultipleNumber -= 1;  
463 - }  
464 - if (e.item._underlying_vm_.subjectType == 3) {  
465 - this.TestPaper.SubjectiveNumber -= 1;  
466 - }  
467 - this.TestPaper.TotalScore -= e.item._underlying_vm_.fraction;  
468 - this.TestPaper.QuestionBankIds = this.arr2.map((u) => u.id);  
469 - },  
470 - //从左边添加到右边  
471 - ComeHere(e) {  
472 - var d = e.item._underlying_vm_;  
473 - if (e.item._underlying_vm_.subjectType == 1) {  
474 - this.TestPaper.SingleNumber += 1;  
475 - }  
476 - if (e.item._underlying_vm_.subjectType == 2) {  
477 - this.TestPaper.MultipleNumber += 1;  
478 - }  
479 - if (e.item._underlying_vm_.subjectType == 3) {  
480 - this.TestPaper.SubjectiveNumber += 1;  
481 - }  
482 - this.TestPaper.TotalScore += e.item._underlying_vm_.fraction;  
483 -  
484 - this.TestPaper.QuestionBankIds = this.arr2.map((u) => u.id);  
485 -  
486 - if (d.type == "wd") {  
487 - getQuestionList({  
488 - QuestionClassId: d.id,  
489 - PageIndex: 1,  
490 - PageSize: 1000,  
491 - }).then((res) => {  
492 - var data = res.data.data.rows || [];  
493 - this.arr2 = this.arr2.filter((o) => o.type != "wd");  
494 - // this.arr1.splice(this.arr1.findIndex(o=>o.id == d.id),1)  
495 - this.classarr.push(d.id);  
496 - // var test = this.arr2;  
497 - this.arr2.push(...data);  
498 - data.forEach((rs) => {  
499 - if (rs.subjectType == 1) {  
500 - this.TestPaper.SingleNumber += 1;  
501 - }  
502 - if (rs.subjectType == 2) {  
503 - this.TestPaper.MultipleNumber += 1;  
504 - }  
505 - if (rs.subjectType == 3) {  
506 - this.TestPaper.SubjectiveNumber += 1; 447 + },
  448 + load() {
  449 + this.loading = true;
  450 + this.parameter.pageIndex++;
  451 + this.GetList();
  452 + this.loading = false;
  453 + },
  454 + GetList() {
  455 + if (this.parameter.QuestionClassId == "1") {
  456 + if (!this.loadingType)
  457 + GetQuestionClassByType({ ClassType: 2 }).then((res) => {
  458 + var classarr = res.data.data || [];
  459 + this.arr1 = classarr.map((rs) => {
  460 + rs.subject = rs.subjectName = rs.ClassificationName;
  461 + rs.type = "wd";
  462 + rs.subjectContent = "[]";
  463 + return rs;
  464 + });
  465 + this.loadingType = true;
  466 + });
  467 + } else {
  468 + getQuestionList(this.parameter).then((res) => {
  469 + if (this.parameter.pageIndex == 1) {
  470 + this.arr1 = [];
507 } 471 }
  472 + res.data.data.rows.forEach((item, i) => {
  473 + this.arr1.push(item);
  474 + });
  475 + this.count = res.data.data.total;
  476 + this.$forceUpdate();
508 }); 477 });
  478 + }
  479 + },
  480 + end1(e) {
  481 + var that = this;
  482 + if (that.arr1.length < 10) {
  483 + this.load();
  484 + }
  485 +
  486 + var items = this.arr2.filter(function (m) {
  487 + return m.id == that.moveId;
509 }); 488 });
510 - }  
511 - },  
512 - //右边往左边拖动时的事件  
513 - end2(e) {  
514 - var that = this;  
515 - var items = this.arr1.filter(function (m) {  
516 - return m.id == that.moveId;  
517 - });  
518 - //如果左边  
519 - if (items.length < 2) return;  
520 - this.arr1.splice(e.newDraggableIndex, 1);  
521 - },  
522 - //move回调方法  
523 - onMove(e, originalEvent) {  
524 - //this.moveId = e.relatedContext.element.id;  
525 - return true;  
526 - },  
527 - getQuestionClassListHeadler() {  
528 - let _this = this;  
529 - GetToplevel().then((res) => {  
530 - var gettree = function (titem) {  
531 - titem.children = [];  
532 - let childrenList = res.data.data.filter(  
533 - (u) => u.ParentId == titem.value  
534 - );  
535 - if (childrenList.length == 0) titem.children = undefined; 489 +
  490 + //如果左边
  491 + if (items.length < 2) return;
  492 + this.arr2.splice(e.newDraggableIndex, 1);
  493 +
  494 + // SingleNumber:0,
  495 + // MultipleNumber:0,
  496 + // SubjectiveNumber:0,
  497 + },
  498 + //从右边移除到左边
  499 + RemoveHere(e) {
  500 + if (e.item._underlying_vm_.subjectType == 1) {
  501 + this.TestPaper.SingleNumber -= 1;
  502 + }
  503 + if (e.item._underlying_vm_.subjectType == 2) {
  504 + this.TestPaper.MultipleNumber -= 1;
  505 + }
  506 + if (e.item._underlying_vm_.subjectType == 3) {
  507 + this.TestPaper.SubjectiveNumber -= 1;
  508 + }
  509 + this.TestPaper.TotalScore -= e.item._underlying_vm_.fraction;
  510 + this.TestPaper.QuestionBankIds = this.arr2.map((u) => u.id);
  511 + },
  512 + //从左边添加到右边
  513 + ComeHere(e) {
  514 + var d = e.item._underlying_vm_;
  515 + if (e.item._underlying_vm_.subjectType == 1) {
  516 + this.TestPaper.SingleNumber += 1;
  517 + }
  518 + if (e.item._underlying_vm_.subjectType == 2) {
  519 + this.TestPaper.MultipleNumber += 1;
  520 + }
  521 + if (e.item._underlying_vm_.subjectType == 3) {
  522 + this.TestPaper.SubjectiveNumber += 1;
  523 + }
  524 + this.TestPaper.TotalScore += e.item._underlying_vm_.fraction;
  525 +
  526 + this.TestPaper.QuestionBankIds = this.arr2.map((u) => u.id);
  527 +
  528 + if (d.type == "wd") {
  529 + getQuestionList({
  530 + QuestionClassId: d.id,
  531 + PageIndex: 1,
  532 + PageSize: 1000,
  533 + }).then((res) => {
  534 + var data = res.data.data.rows || [];
  535 + data = data.filter(o => !this.arr2.find(d => d.id == o.id));
  536 + this.arr2 = this.arr2.filter((o) => o.type != "wd");
  537 + // this.arr1.splice(this.arr1.findIndex(o=>o.id == d.id),1)
  538 + this.classarr.push(d.id);
  539 + // var test = this.arr2;
  540 + this.arr2.push(...data);
  541 + data.forEach((rs) => {
  542 + if (rs.subjectType == 1) {
  543 + this.TestPaper.SingleNumber += 1;
  544 + }
  545 + if (rs.subjectType == 2) {
  546 + this.TestPaper.MultipleNumber += 1;
  547 + }
  548 + if (rs.subjectType == 3) {
  549 + this.TestPaper.SubjectiveNumber += 1;
  550 + }
  551 + });
  552 + });
  553 + }
  554 + },
  555 + //右边往左边拖动时的事件
  556 + end2(e) {
  557 + var that = this;
  558 + var items = this.arr1.filter(function (m) {
  559 + return m.id == that.moveId;
  560 + });
  561 + //如果左边
  562 + if (items.length < 2) return;
  563 + this.arr1.splice(e.newDraggableIndex, 1);
  564 + },
  565 + //move回调方法
  566 + onMove(e, originalEvent) {
  567 + //this.moveId = e.relatedContext.element.id;
  568 + return true;
  569 + },
  570 + getQuestionClassListHeadler() {
  571 + let _this = this;
  572 + GetToplevel().then((res) => {
  573 + var gettree = function (titem) {
  574 + titem.children = [];
  575 + let childrenList = res.data.data.filter(
  576 + (u) => u.ParentId == titem.value
  577 + );
  578 + if (childrenList.length == 0) titem.children = undefined;
  579 + res.data.data
  580 + .filter((u) => u.ParentId == titem.value)
  581 + .forEach((item, i) => {
  582 + var model = {
  583 + value: item.id,
  584 + label: item.ClassTitle,
  585 + };
  586 + gettree(model);
  587 + titem.children.push(model);
  588 + });
  589 + };
536 res.data.data 590 res.data.data
537 - .filter((u) => u.ParentId == titem.value) 591 + .filter((u) => u.ParentId == 0)
538 .forEach((item, i) => { 592 .forEach((item, i) => {
539 var model = { 593 var model = {
540 value: item.id, 594 value: item.id,
541 label: item.ClassTitle, 595 label: item.ClassTitle,
542 }; 596 };
543 gettree(model); 597 gettree(model);
544 - titem.children.push(model); 598 + _this.QuestionClass.push(model);
  599 + _this.treeData.push(model);
545 }); 600 });
546 - };  
547 - res.data.data  
548 - .filter((u) => u.ParentId == 0)  
549 - .forEach((item, i) => {  
550 - var model = {  
551 - value: item.id,  
552 - label: item.ClassTitle,  
553 - };  
554 - gettree(model);  
555 - _this.QuestionClass.push(model);  
556 - _this.treeData.push(model);  
557 - });  
558 - }); 601 + });
  602 + },
559 }, 603 },
560 - },  
561 -}; 604 + };
562 </script> 605 </script>
563 606
564 <style lang="scss" scoped> 607 <style lang="scss" scoped>
565 -.el-row {  
566 - /* margin-bottom: 20px; */  
567 - &:last-child {  
568 - margin-bottom: 0; 608 + .el-row {
  609 +
  610 + /* margin-bottom: 20px; */
  611 + &:last-child {
  612 + margin-bottom: 0;
  613 + }
569 } 614 }
570 -}  
571 -  
572 -.el-col {  
573 - border-radius: 4px;  
574 -}  
575 -  
576 -.bg-purple-dark {  
577 - background: #99a9bf;  
578 -}  
579 -  
580 -.bg-purple {  
581 - background: #efefef;  
582 -}  
583 -  
584 -.bg-purple-light {  
585 - background: #e5e9f2;  
586 -}  
587 -  
588 -.grid-content {  
589 - border-radius: 4px;  
590 - min-height: 36px;  
591 - height: 100%;  
592 -}  
593 -  
594 -.row-bg {  
595 - padding: 10px 0;  
596 - background-color: #f9fafc;  
597 -}  
598 -  
599 -.infinite-list {  
600 - list-style: none;  
601 - margin: 0px;  
602 - padding: 0px;  
603 -  
604 - &::-webkit-scrollbar {  
605 - width: 6px; 615 +
  616 + .el-col {
  617 + border-radius: 4px;
  618 + }
  619 +
  620 + .bg-purple-dark {
  621 + background: #99a9bf;
  622 + }
  623 +
  624 + .bg-purple {
  625 + background: #efefef;
606 } 626 }
607 627
608 - //滚动条小方块  
609 - &::-webkit-scrollbar-thumb {  
610 - border-radius: 10px;  
611 - background: #304156; 628 + .bg-purple-light {
  629 + background: #e5e9f2;
612 } 630 }
613 631
614 - //滚动条轨道  
615 - &::-webkit-scrollbar-track {  
616 - // border-radius: 10px;  
617 - height: 100px;  
618 - background: #cdcdcd; 632 + .grid-content {
  633 + border-radius: 4px;
  634 + min-height: 36px;
  635 + height: 100%;
619 } 636 }
620 637
621 - .infinite-list-item {  
622 - padding: 10px;  
623 - min-height: 60px;  
624 - width: 95%;  
625 - margin: auto;  
626 - background-color: #fff;  
627 - margin-bottom: 10px;  
628 - border-radius: 5px;  
629 - box-shadow: 0 0 5px #cdcdcd;  
630 -  
631 - &:first-child {  
632 - margin-top: 10px; 638 + .row-bg {
  639 + padding: 10px 0;
  640 + background-color: #f9fafc;
  641 + }
  642 +
  643 + .infinite-list {
  644 + list-style: none;
  645 + margin: 0px;
  646 + padding: 0px;
  647 +
  648 + &::-webkit-scrollbar {
  649 + width: 6px;
  650 + }
  651 +
  652 + //滚动条小方块
  653 + &::-webkit-scrollbar-thumb {
  654 + border-radius: 10px;
  655 + background: #304156;
  656 + }
  657 +
  658 + //滚动条轨道
  659 + &::-webkit-scrollbar-track {
  660 + // border-radius: 10px;
  661 + height: 100px;
  662 + background: #cdcdcd;
  663 + }
  664 +
  665 + .infinite-list-item {
  666 + padding: 10px;
  667 + min-height: 60px;
  668 + width: 95%;
  669 + margin: auto;
  670 + background-color: #fff;
  671 + margin-bottom: 10px;
  672 + border-radius: 5px;
  673 + box-shadow: 0 0 5px #cdcdcd;
  674 +
  675 + &:first-child {
  676 + margin-top: 10px;
  677 + }
633 } 678 }
634 } 679 }
635 -}  
636 -  
637 -.option-p {  
638 - line-height: 15px;  
639 -}  
640 -  
641 -.areahead {  
642 - text-align: center;  
643 - height: 60px;  
644 - line-height: 60px;  
645 - border-bottom: 1px solid #cdcdcd;  
646 -}  
647 -  
648 -.testPaper-manager {  
649 - margin: 10px 20px 10px 10px;  
650 -}  
651 -  
652 -.testPaper-manager .el-form-item {  
653 - margin-bottom: 20px;  
654 -}  
655 -  
656 -.el-form-item-custom {  
657 - margin-bottom: 0px !important;  
658 -}  
659 -  
660 -.testpaper-input {  
661 - //max-width: 400px;  
662 -} 680 +
  681 + .option-p {
  682 + line-height: 15px;
  683 + }
  684 +
  685 + .areahead {
  686 + text-align: center;
  687 + height: 60px;
  688 + line-height: 60px;
  689 + border-bottom: 1px solid #cdcdcd;
  690 + }
  691 +
  692 + .testPaper-manager {
  693 + margin: 10px 20px 10px 10px;
  694 + }
  695 +
  696 + .testPaper-manager .el-form-item {
  697 + margin-bottom: 20px;
  698 + }
  699 +
  700 + .el-form-item-custom {
  701 + margin-bottom: 0px !important;
  702 + }
  703 +
  704 + .testpaper-input {
  705 + //max-width: 400px;
  706 + }
663 </style> 707 </style>
664 \ No newline at end of file 708 \ No newline at end of file
src/views/TestPaper/TestPaperList.vue
@@ -100,6 +100,15 @@ @@ -100,6 +100,15 @@
100 <el-option label="面试题" value="4"></el-option> 100 <el-option label="面试题" value="4"></el-option>
101 </el-select> 101 </el-select>
102 </el-form-item> 102 </el-form-item>
  103 +
  104 +
  105 + <el-form-item label="工种" class="el-form-item-custom">
  106 + <el-select v-model="TestPaper.UserTypeOfWork" placeholder="请选择工种">
  107 + <el-option v-for="item in usertypelist" :label="item.name" :value="item.id"></el-option>
  108 + </el-select>
  109 + </el-form-item>
  110 +
  111 +
103 <el-form-item label="有效时间" required> 112 <el-form-item label="有效时间" required>
104 <el-form-item prop="date1"> 113 <el-form-item prop="date1">
105 <el-date-picker v-model="TestPaper.date" @change="changetimestartend" type="datetimerange" 114 <el-date-picker v-model="TestPaper.date" @change="changetimestartend" type="datetimerange"
@@ -155,6 +164,9 @@ @@ -155,6 +164,9 @@
155 getTestPaperClassList, 164 getTestPaperClassList,
156 DeleteTestPaper 165 DeleteTestPaper
157 } from '@/api/TestPaper' 166 } from '@/api/TestPaper'
  167 +
  168 + import { GetTypeSetting
  169 + } from '@/api/user'
158 import { formatTime } from '@/utils/util' 170 import { formatTime } from '@/utils/util'
159 let that 171 let that
160 export default { 172 export default {
@@ -174,6 +186,7 @@ @@ -174,6 +186,7 @@
174 dialogAddTestPaperVIsible: false, 186 dialogAddTestPaperVIsible: false,
175 dialogQuestionVlsible: false, 187 dialogQuestionVlsible: false,
176 QuestionClass: [], 188 QuestionClass: [],
  189 + usertypelist:[],
177 TestPaper: { 190 TestPaper: {
178 TestPaperTitle: "", 191 TestPaperTitle: "",
179 PlateClass: 4, 192 PlateClass: 4,
@@ -209,6 +222,12 @@ @@ -209,6 +222,12 @@
209 getTestPaperClassList(parameter).then(res => { 222 getTestPaperClassList(parameter).then(res => {
210 this.list = res.data.data; 223 this.list = res.data.data;
211 }); 224 });
  225 +
  226 + GetTypeSetting({}).then(res=>{
  227 + if(res.data){
  228 + this.usertypelist = res.data || [];
  229 + }
  230 + });
212 }, 231 },
213 filters: { 232 filters: {
214 typeFilters(val) { 233 typeFilters(val) {
src/views/live/index.vue
@@ -16,7 +16,6 @@ @@ -16,7 +16,6 @@
16 }, 16 },
17 mounted() { 17 mounted() {
18 this.$nextTick(function () { 18 this.$nextTick(function () {
19 -  
20 var player = new TcPlayer("id_test_video", { 19 var player = new TcPlayer("id_test_video", {
21 m3u8: `http://watch.t1j2.com/live/${this.streaName}.m3u8`, 20 m3u8: `http://watch.t1j2.com/live/${this.streaName}.m3u8`,
22 flv: `http://watch.t1j2.com/live/${this.streaName}.flv`, //增加了一个 flv 的播放地址,用于PC平台的播放 请替换成实际可用的播放地址 21 flv: `http://watch.t1j2.com/live/${this.streaName}.flv`, //增加了一个 flv 的播放地址,用于PC平台的播放 请替换成实际可用的播放地址
src/views/login/index.vue
@@ -88,6 +88,8 @@ @@ -88,6 +88,8 @@
88 $route: { 88 $route: {
89 handler: function(route) { 89 handler: function(route) {
90 this.redirect = route.query && route.query.redirect 90 this.redirect = route.query && route.query.redirect
  91 + if(this.redirect.indexOf('404') !=-1)
  92 + this.redirect = this.redirect.replace('404','dashboard')
91 }, 93 },
92 immediate: true 94 immediate: true
93 } 95 }
src/views/user/picuserimport.vue
@@ -96,7 +96,7 @@ @@ -96,7 +96,7 @@
96 > 96 >
97 </el-input> 97 </el-input>
98 <span v-if="!scope.row.edit" 98 <span v-if="!scope.row.edit"
99 - >{{ scope.row[item.prop] }}{{ scope.row.edit }}</span 99 + >{{ scope.row[item.prop] }}</span
100 > 100 >
101 </template> 101 </template>
102 </el-table-column> 102 </el-table-column>
@@ -298,6 +298,7 @@ export default { @@ -298,6 +298,7 @@ export default {
298 this.multipleSelection = val; 298 this.multipleSelection = val;
299 console.log("selection:", this.multipleSelection); 299 console.log("selection:", this.multipleSelection);
300 }, 300 },
  301 +
301 //编辑 302 //编辑
302 handleEdit(index, row) { 303 handleEdit(index, row) {
303 if (row.ViewPath) { 304 if (row.ViewPath) {
@@ -305,13 +306,21 @@ export default { @@ -305,13 +306,21 @@ export default {
305 }else{ 306 }else{
306 this.currentFilePath = ''; 307 this.currentFilePath = '';
307 } 308 }
308 - this.table_data = this.table_data.map(t=>{  
309 - delete t.edit;  
310 - return t;  
311 - })  
312 - this.table_data[index].edit = true;  
313 - this.table_data.push(this.table_data.pop());  
314 - this.$forceUpdate(); 309 + // debugger;
  310 + // if(this.table_data)
  311 + // this.table_data = this.table_data.map(t=>{
  312 + // t.edit = false;
  313 + // return t;
  314 + // })
  315 + this.table_data.forEach((o,i)=>{
  316 + this.$set(this.table_data[i],'edit',i==index)
  317 + });
  318 + // this.table_data = Object.assign({},this.table_data);
  319 + // this.table_data[index].edit = true;
  320 + // this.table_data.push(this.table_data.pop());
  321 + // this.$forceUpdate();
  322 +
  323 + // this.$set(this.table_data[index],'edit',true)
315 }, 324 },
316 //删除 325 //删除
317 handleDelete(index, row) { 326 handleDelete(index, row) {
@@ -423,7 +432,13 @@ export default { @@ -423,7 +432,13 @@ export default {
423 }, 432 },
424 }; 433 };
425 </script> 434 </script>
  435 +<style scoped>
  436 + /deep/.el-table__body-wrapper{
  437 + height:92% !important;
  438 + }
  439 +</style>
426 <style lang="scss" scoped> 440 <style lang="scss" scoped>
  441 +
427 .main-box{ 442 .main-box{
428 display: flex; 443 display: flex;
429 } 444 }
src/views/user/userdimset copy.vue 0 → 100644
  1 +<template>
  2 + <div style="padding: 10px">
  3 + <div class="seetingsDiv" style="">
  4 + <div class="flex" style="margin-top: 10px">
  5 + <el-form :inline="true" class="demo-form-inline">
  6 + <el-form-item label="关键字">
  7 + <el-input
  8 + placeholder="输入关键字搜索"
  9 + v-model="query.keyword"
  10 + ></el-input>
  11 + </el-form-item>
  12 +
  13 + <el-form-item label="最高学历">
  14 + <el-select v-model="query.xueli" placeholder="最高学历">
  15 + <el-option label="大专" value="dazhuan"></el-option>
  16 + <el-option label="本科" value="benke"></el-option>
  17 + <el-option label="博士" value="boshi"></el-option>
  18 + </el-select>
  19 + </el-form-item>
  20 +
  21 + <el-form-item label="性别">
  22 + <el-select v-model="query.sex" placeholder="性别">
  23 + <el-option label="男" value="1"></el-option>
  24 + <el-option label="女" value="0"></el-option>
  25 + </el-select>
  26 + </el-form-item>
  27 + </el-form>
  28 + </div>
  29 + <div class="flex align-center" style="margin-top: 10px">
  30 + <el-button type="success" @click="search">搜索</el-button>
  31 + <el-button size="mini" @click="handleshare()" type="primary"
  32 + >批量入库</el-button
  33 + >
  34 + <el-button size="mini" @click="handleAdd()" type="primary"
  35 + >新增一行</el-button
  36 + >
  37 + <el-upload
  38 + class="upload-demo"
  39 + ref="uploader"
  40 + action="/api//UserInfo/ResumeIdentification"
  41 + multiple
  42 + :headers="{
  43 + Authorization: Authorization,
  44 + }"
  45 + :limit="100"
  46 + :show-file-list="false"
  47 + :on-exceed="handleExceed"
  48 + :on-success="handleSuccess"
  49 + >
  50 + <el-button size="small" type="primary">上传简历</el-button>
  51 + </el-upload>
  52 + </div>
  53 + </div>
  54 + <div class="main-box">
  55 +
  56 + <table class="el-table__body">
  57 + <thead class="has-gutter">
  58 + <th>
  59 + <td>111</td>
  60 + <td>大师傅</td>
  61 + <td>的的的</td>
  62 + </th>
  63 + </thead>
  64 +
  65 + <tr>
  66 + <td>test禄口街道杀戮空间</td>
  67 + <td>test禄口街道杀戮空间</td>
  68 + <td>test禄口街道杀戮空间</td>
  69 + </tr>
  70 + </table>
  71 + </div>
  72 + <!-- <div class="page-box">
  73 + <el-pagination
  74 + background
  75 + layout="prev, pager, next"
  76 + :total="queryResult.totalCount"
  77 + >
  78 + </el-pagination>
  79 + </div> -->
  80 + </div>
  81 +</template>
  82 +
  83 +<script>
  84 +import {
  85 + UserInfo_BatchToUser,
  86 + UserInfo_Delete,
  87 + UserInfo_Update,
  88 + UserInfo_List,
  89 +} from "@/api/user";
  90 +export default {
  91 + data() {
  92 + return {
  93 + currentFilePath: "",
  94 + queryResult: {},
  95 + queryModel: {
  96 + pageIndex: 1,
  97 + pageSize: 10,
  98 + },
  99 + query: {},
  100 + new_date_json: {}, //数据结构
  101 + multipleSelection: [], //复选框,数据
  102 + is_edit: true, //是否可编辑
  103 + is_delete: true, //是否可删除
  104 + selection: true, //是否需要复选框
  105 + radio: false, //单选变色
  106 + space_color: true, //隔行变色
  107 + //表头信息
  108 + table_columns: [
  109 + {
  110 + prop: "FullName",
  111 + label: "技术",
  112 + width: "150",
  113 + },
  114 + {
  115 + prop: "PhoneNumber",
  116 + label: "手机号",
  117 + width: "150",
  118 + },
  119 + {
  120 + prop: "DateBirth",
  121 + label: "出生日期",
  122 + width: "180",
  123 + },
  124 + {
  125 + prop: "Gender",
  126 + label: "性别",
  127 + width: "80",
  128 + },
  129 + {
  130 + prop: "GraduationSchool",
  131 + label: "毕业学校",
  132 + width: "200",
  133 + },
  134 + {
  135 + prop: "GraduationMajor",
  136 + label: "专业",
  137 + width: "200",
  138 + },
  139 + {
  140 + prop: "Education",
  141 + label: "最高学历",
  142 + width: "",
  143 + },
  144 + {
  145 + prop: "IntendedCity",
  146 + label: "城市",
  147 + width: "150",
  148 + },
  149 + ],
  150 + //表格数据
  151 + table_data: [],
  152 + };
  153 + },
  154 + methods: {
  155 + handleExceed() {},
  156 + handleSuccess(res) {
  157 + this.$refs.uploader.clearFiles();
  158 + this.search();
  159 + },
  160 + search() {
  161 + this.queryModel.pageIndex = 1;
  162 + this.getList();
  163 + },
  164 + getList() {
  165 + table_data = [];
  166 + // UserInfo_List(this.queryModel).then((res) => {
  167 + // this.queryResult = res.data;
  168 + // if (res.data.data && res.data.data.length) {
  169 + // res.data.data = res.data.data.map((t) => {
  170 + // t.DataJsonObj = JSON.parse(t.DataJson);
  171 + // return t;
  172 + // });
  173 + // }
  174 + // this.table_data = res.data.data;
  175 + // });
  176 + },
  177 + //隔行变色
  178 + tableRowClassName() {
  179 + //选取DOM节点
  180 + var trs = this.$refs.mytable.$el
  181 + .getElementsByTagName("tbody")[0]
  182 + .getElementsByTagName("tr");
  183 + for (var i in trs) {
  184 + if (i % 2 == 0) {
  185 + //当隔行变色未true时改变颜色
  186 + if (this.space_color) {
  187 + trs[i].style.backgroundColor = "#f0f9eb";
  188 + } else {
  189 + trs[i].style.backgroundColor = "";
  190 + }
  191 + }
  192 + }
  193 + },
  194 +
  195 + //多选框
  196 + handleSelectionChange(val) {
  197 + this.multipleSelection = val;
  198 + console.log("selection:", this.multipleSelection);
  199 + },
  200 + //编辑
  201 + handleEdit(index, row) {
  202 + var model ;
  203 + this.table_data = this.table_data.map(t=>{
  204 + delete t.edit;
  205 + return t;
  206 + })
  207 + this.$set(this.table_data[index],'edit',true)
  208 +
  209 +
  210 + },
  211 + //删除
  212 + handleDelete(index, row) {
  213 + console.log(index, row);
  214 +
  215 + this.table_data.splice(index, 1);
  216 + // UserInfo_Delete(row.id);
  217 + // this.$message({
  218 + // message: "删除成功!",
  219 + // type: "success",
  220 + // });
  221 + },
  222 +
  223 + handleshare(index, row) {
  224 + if (!row) {
  225 + this.table_data = [];
  226 + } else {
  227 + console.log(index, row);
  228 + this.table_data.splice(index, 1);
  229 + }
  230 + UserInfo_BatchToUser(row.id);
  231 + this.$message({
  232 + message: "入库成功!",
  233 + type: "success",
  234 + });
  235 + },
  236 +
  237 + //保存
  238 + handleSave(index, row) {
  239 + delete this.table_data[index].edit;
  240 + let formData = { ...row };
  241 + delete formData.DataJsonObj;
  242 + UserInfo_Update(row);
  243 + this.table_data.push(this.table_data.pop());
  244 + this.$forceUpdate();
  245 + this.$message({
  246 + message: "保存成功!",
  247 + type: "success",
  248 + });
  249 + },
  250 + handleCancelSave(index, row){
  251 + delete this.table_data[index].edit;
  252 + if(this.currentFilePath == row.ViewPath){
  253 + this.currentFilePath = '';
  254 + }
  255 + this.table_data.push(this.table_data.pop());
  256 + },
  257 + handleAdd() {
  258 + var addDataJson = {};
  259 + for (var key in this.new_date_json) {
  260 + if (key === "edit") {
  261 + delete addDataJson[key];
  262 + } else if (key === "add") {
  263 + delete addDataJson[key];
  264 + } else {
  265 + addDataJson[key] = "";
  266 + }
  267 + }
  268 + addDataJson.edit = true;
  269 + addDataJson.add = true;
  270 + this.table_data.push(addDataJson);
  271 + },
  272 + //初始化编辑属性
  273 + initEditAttribute() {
  274 + var self = this;
  275 + var edit = self.edit;
  276 + },
  277 + initAddDataJson(dataArray) {
  278 + //新增时,初始化数据结构
  279 + var dataJson = dataArray;
  280 + var newDateJson = {};
  281 + for (var key in dataJson) {
  282 + if (key === "edit") {
  283 + newDateJson[key] = "true";
  284 + } else {
  285 + newDateJson[key] = "";
  286 + }
  287 + }
  288 + newDateJson["add"] = true;
  289 + this.new_date_json = newDateJson;
  290 + },
  291 + },
  292 + created() {
  293 + this.getList();
  294 + },
  295 + mounted: function () {
  296 + this.initEditAttribute();
  297 + //确保方法在页面渲染后调用
  298 + this.$nextTick(function () {
  299 + /////方法
  300 + this.tableRowClassName();
  301 + });
  302 + },
  303 + watch: {
  304 + space_color: function () {
  305 + //监听数据变化
  306 + this.$nextTick(function () {
  307 + /////方法
  308 + this.tableRowClassName();
  309 + });
  310 + },
  311 + table_data: function () {
  312 + //监听数据变化f
  313 + this.$nextTick(function () {
  314 + /////方法
  315 + this.tableRowClassName();
  316 + });
  317 + },
  318 + },
  319 +};
  320 +</script>
  321 +<style lang="scss" scoped>
  322 +.main-box{
  323 + display: flex;
  324 +}
  325 +.doc-view {
  326 + margin-left: 10px;
  327 + width: 100%;
  328 + flex: 1;
  329 + overflow: hidden;
  330 +}
  331 +.el-table__expanded-cell {
  332 + padding: 10px;
  333 +}
  334 +.demo-table-expand {
  335 + display: flex;
  336 + justify-content: space-between;
  337 + flex-wrap: wrap;
  338 + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
  339 + padding: 20px;
  340 + border-radius: 10px;
  341 +}
  342 +.demo-table-expand .el-form-item {
  343 + margin-bottom: 10px !important;
  344 + min-width: 20%;
  345 + max-width: 50%;
  346 +}
  347 +.demo-form-inline {
  348 + display: flex;
  349 + align-items: center;
  350 +}
  351 +.el-form--inline .el-form-item {
  352 + display: flex;
  353 + align-items: center;
  354 + margin-bottom: 0;
  355 +}
  356 +.aligin-center {
  357 + align-items: center;
  358 +}
  359 +.seetingsDiv {
  360 + display: flex;
  361 + align-items: center;
  362 + width: 100%;
  363 + height: auto;
  364 + padding: 30px;
  365 + background: #efefef;
  366 + /* line-height: 60px; */
  367 + border-radius: 5px;
  368 + box-shadow: 0 0 5px #cdcdcd;
  369 + justify-content: space-between;
  370 + flex-wrap: wrap;
  371 + margin-bottom: 20px;
  372 +}
  373 +
  374 +.seetingsDiv button {
  375 + height: 40px;
  376 + background-color: #304156;
  377 + border: 0px;
  378 + margin-left: 10px;
  379 + box-shadow: 0 0 5px #cdcdcd;
  380 + float: none;
  381 + margin-right: 10px;
  382 + margin-top: 0;
  383 +}
  384 +</style>
0 \ No newline at end of file 385 \ No newline at end of file
src/views/user/userdimset.vue 0 → 100644
  1 +<template>
  2 + <div style="padding: 10px">
  3 + <div class="seetingsDiv" style="">
  4 + <div class="flex" style="margin-top: 10px">
  5 + <el-alert title="分别设置各种岗位分值区间 具体标签自动生成 规则:当某种性格/能力标签 大于 或小于分值区间标签自动贴上! 如:感性 感性高 感性低" type="success"
  6 + :closable="false">
  7 + </el-alert>
  8 + </div>
  9 + <div class="flex align-center" style="margin-top: 10px">
  10 + <el-button type="success" @click="saveSetting">保存</el-button>
  11 + </div>
  12 + </div>
  13 + <div class="main-box" style="padding:100px">
  14 +
  15 + <el-table ref="mytable" :data="table_data" style="width: 100%;display:block" border>
  16 + <el-table-column width="155" label="性格" prop="title" align="center">
  17 + <template slot-scope="{row}">
  18 +
  19 + <el-input size="small" v-model="row.title" placeholder="请输入标题">
  20 + </el-input>
  21 +
  22 + </template>
  23 + </el-table-column>
  24 + <el-table-column align="center" v-for="(item, index, key) in table_columns" :item="item" :key="key"
  25 + :index="index" :label="item">
  26 + <template slot-scope="{row}">
  27 + <el-col :span="11">
  28 + <el-input size="small" v-model="row[item].start" placeholder="请输入开始分值">
  29 + </el-input>
  30 + </el-col>
  31 + <el-col class="line" :span="2">-</el-col>
  32 + <el-col :span="11">
  33 + <el-input size="small" v-model="row[item].end" placeholder="请输入结束分值">
  34 + </el-input>
  35 + </el-col>
  36 + <!-- <el-input
  37 + size="small"
  38 + v-model="row[item].start"
  39 + placeholder="请输入开始分值"
  40 + >
  41 + </el-input>
  42 + - <el-input
  43 + size="small"
  44 + v-model="row[item].end"
  45 + placeholder="请输入结束分值"
  46 +>
  47 +</el-input> -->
  48 + <!-- <el-input v-if="scope.row[item]"
  49 + size="small"
  50 + v-model="scope.row[item].end"
  51 + :placeholder="'请输入结束分值"
  52 + >
  53 + </el-input> -->
  54 + </template>
  55 + </el-table-column>
  56 + <!-- <el-table-column label="操作" align="center" width="300" >
  57 + <template slot-scope="scope">
  58 + <el-button
  59 + size="mini"
  60 + :plain="true"
  61 + type="danger"
  62 + style="margin-left: 10px"
  63 + @click="handleDelete(scope.$index, scope.row)"
  64 + >删除</el-button
  65 + >
  66 + </template>
  67 + </el-table-column> -->
  68 + </el-table>
  69 +
  70 + <el-table ref="mytable_gdf" :data="table_gdfdata" style="width: 100%;display:block" :show-header="false" border>
  71 + <el-table-column width="155" label="能力" prop="title" align="center">
  72 + <template slot-scope="{row}">
  73 +
  74 + <el-input size="small" v-model="row.title" placeholder="请输入标题">
  75 + </el-input>
  76 +
  77 + </template>
  78 + </el-table-column>
  79 + <el-table-column align="center" v-for="(item, index, key) in table_columns" :item="item" :key="key"
  80 + :index="index" :label="item">
  81 + <template slot-scope="{row}">
  82 + <el-input size="small" v-model="row[item].start" placeholder="请输入值">
  83 + </el-input>
  84 + </template>
  85 + </el-table-column>
  86 + <!-- <el-table-column label="操作" align="center" width="300" >
  87 + <template slot-scope="scope">
  88 + <el-button
  89 + size="mini"
  90 + :plain="true"
  91 + type="danger"
  92 + style="margin-left: 10px"
  93 + @click="handleDelete(scope.$index, scope.row)"
  94 + >删除</el-button
  95 + >
  96 + </template>
  97 + </el-table-column> -->
  98 + </el-table>
  99 +
  100 +
  101 +
  102 + <el-table ref="mytable1" :data="table_nldata" style="width: 100%;display:block;margin-top:20px;" border>
  103 + <el-table-column width="155" label="能力" prop="title" align="center">
  104 + <template slot-scope="{row}">
  105 +
  106 + <el-input size="small" v-model="row.title" placeholder="请输入标题">
  107 + </el-input>
  108 +
  109 + </template>
  110 + </el-table-column>
  111 + <el-table-column align="center" :label="'能力分值规则'">
  112 + <template slot-scope="{row}">
  113 +
  114 +
  115 + <el-col :span="11">
  116 + <el-input size="small" v-model="row.scoreStart" placeholder="请输入开始分值">
  117 + </el-input>
  118 + </el-col>
  119 + <el-col class="line" :span="2">-</el-col>
  120 + <el-col :span="11">
  121 + <el-input size="small" v-model="row.scoreEnd" placeholder="请输入结束分值">
  122 + </el-input>
  123 + </el-col>
  124 + </template>
  125 + </el-table-column>
  126 + </el-table>
  127 +
  128 +
  129 + <el-table ref="mytable2" :data="table_stardata" style="width: 100%;display:block" border>
  130 + <el-table-column width="155" label="星级" prop="title" align="center">
  131 + <template slot-scope="{row}">
  132 +
  133 + <el-input size="small" v-model="row.title" placeholder="请输入标题">
  134 + </el-input>
  135 +
  136 + </template>
  137 + </el-table-column>
  138 + <el-table-column align="center" v-for="(item, index, key) in table_columns" :item="item" :key="key"
  139 + :index="index" :label="item">
  140 + <template slot-scope="{row}">
  141 + <el-col :span="11">
  142 + <el-input size="small" v-model="row[item].start" placeholder="请输入开始分值">
  143 + </el-input>
  144 + </el-col>
  145 + <el-col class="line" :span="2">-</el-col>
  146 + <el-col :span="11">
  147 + <el-input size="small" v-model="row[item].end" placeholder="请输入结束分值">
  148 + </el-input>
  149 + </el-col>
  150 + <!-- <el-input
  151 + size="small"
  152 + v-model="row[item].start"
  153 + placeholder="请输入开始分值"
  154 + >
  155 + </el-input>
  156 + - <el-input
  157 + size="small"
  158 + v-model="row[item].end"
  159 + placeholder="请输入结束分值"
  160 +>
  161 +</el-input> -->
  162 + <!-- <el-input v-if="scope.row[item]"
  163 + size="small"
  164 + v-model="scope.row[item].end"
  165 + :placeholder="'请输入结束分值"
  166 + >
  167 + </el-input> -->
  168 + </template>
  169 + </el-table-column>
  170 + <!-- <el-table-column label="操作" align="center" width="300" >
  171 + <template slot-scope="scope">
  172 + <el-button
  173 + size="mini"
  174 + :plain="true"
  175 + type="danger"
  176 + style="margin-left: 10px"
  177 + @click="handleDelete(scope.$index, scope.row)"
  178 + >删除</el-button
  179 + >
  180 + </template>
  181 + </el-table-column> -->
  182 + </el-table>
  183 +
  184 +
  185 + </div>
  186 +
  187 + </div>
  188 + </div>
  189 +</template>
  190 +
  191 +<script>
  192 + import {
  193 + UserInfo_BatchToUser,
  194 + UserInfo_Delete,
  195 + UserInfo_Update,
  196 + UserInfo_List,
  197 + UserTypeSettings,
  198 + saveTypeSetting
  199 + } from "@/api/user";
  200 + export default {
  201 + data() {
  202 + return {
  203 + currentFilePath: "",
  204 + queryResult: {},
  205 + queryModel: {
  206 + pageIndex: 1,
  207 + pageSize: 10,
  208 + },
  209 +
  210 + query: {},
  211 + new_date_json: {}, //数据结构
  212 + multipleSelection: [], //复选框,数据
  213 + is_edit: true, //是否可编辑
  214 + is_delete: true, //是否可删除
  215 + selection: true, //是否需要复选框
  216 + radio: false, //单选变色
  217 + space_color: true, //隔行变色
  218 +
  219 + //表头信息
  220 + table_columns: [
  221 + // {
  222 + // prop: "",
  223 + // label: "",
  224 + // width: "150",
  225 + // },
  226 + // {
  227 + // prop: "PhoneNumber",
  228 + // label: "手机号",
  229 + // width: "150",
  230 + // },
  231 + // {
  232 + // prop: "DateBirth",
  233 + // label: "出生日期",
  234 + // width: "180",
  235 + // },
  236 + // {
  237 + // prop: "Gender",
  238 + // label: "性别",
  239 + // width: "80",
  240 + // },
  241 + // {
  242 + // prop: "GraduationSchool",
  243 + // label: "毕业学校",
  244 + // width: "200",
  245 + // },
  246 + // {
  247 + // prop: "GraduationMajor",
  248 + // label: "专业",
  249 + // width: "200",
  250 + // },
  251 + // {
  252 + // prop: "Education",
  253 + // label: "最高学历",
  254 + // width: "",
  255 + // },
  256 + // {
  257 + // prop: "IntendedCity",
  258 + // label: "城市",
  259 + // width: "150",
  260 + // },
  261 + ],
  262 + //表格数据
  263 + table_data: [], //性格
  264 + table_nldata: [], //能力 规则
  265 + table_stardata: [], //星级分值规则
  266 + table_gdfdata: [] //高低分
  267 + };
  268 + },
  269 + methods: {
  270 + saveSetting() {
  271 + var saveForm = {
  272 + xg: this.table_data || [], //性格
  273 + nl: this.table_nldata || [], //能力 规则
  274 + star: this.table_stardata || [], //星级分值规则
  275 + gdf: this.table_gdfdata || [] //高低分
  276 + };
  277 + saveTypeSetting({ Value: JSON.stringify(saveForm) }).then(res => {
  278 + if (res.data && res.data > 0) {
  279 + this.$message({
  280 + message: "更新成功!",
  281 + type: "success",
  282 + });
  283 + }
  284 + else {
  285 +
  286 + this.$message({
  287 + message: "更新失败!",
  288 + type: "warning",
  289 + });
  290 +
  291 + }
  292 + });
  293 + },
  294 + handleExceed() { },
  295 + handleSuccess(res) {
  296 + this.$refs.uploader.clearFiles();
  297 + this.search();
  298 + },
  299 + search() {
  300 + this.queryModel.pageIndex = 1;
  301 + this.getList();
  302 + },
  303 + getList() {
  304 + UserTypeSettings({}).then((res) => {
  305 +
  306 + if (res.data) {
  307 + this.table_columns = res.data.columns;
  308 + this.table_data = res.data.list || [];
  309 + this.table_nldata = res.data.nlList || [];
  310 + this.table_stardata = res.data.starList || [];
  311 + this.table_gdfdata = res.data.gdList || [];
  312 +
  313 + }
  314 +
  315 + });
  316 + },
  317 + //隔行变色
  318 + tableRowClassName() {
  319 + //选取DOM节点
  320 + var trs = this.$refs.mytable.$el
  321 + .getElementsByTagName("tbody")[0]
  322 + .getElementsByTagName("tr");
  323 + for (var i in trs) {
  324 + if (i % 2 == 0) {
  325 + //当隔行变色未true时改变颜色
  326 + if (this.space_color) {
  327 + trs[i].style.backgroundColor = "#f0f9eb";
  328 + } else {
  329 + trs[i].style.backgroundColor = "";
  330 + }
  331 + }
  332 + }
  333 + },
  334 +
  335 + //多选框
  336 + handleSelectionChange(val) {
  337 + this.multipleSelection = val;
  338 + console.log("selection:", this.multipleSelection);
  339 + },
  340 + //编辑
  341 + handleEdit(index, row) {
  342 + var model;
  343 + this.table_data = this.table_data.map(t => {
  344 + delete t.edit;
  345 + return t;
  346 + })
  347 + this.$set(this.table_data[index], 'edit', true)
  348 +
  349 +
  350 + },
  351 + //删除
  352 + handleDelete(index, row) {
  353 + console.log(index, row);
  354 +
  355 + this.table_data.splice(index, 1);
  356 + // UserInfo_Delete(row.id);
  357 + // this.$message({
  358 + // message: "删除成功!",
  359 + // type: "success",
  360 + // });
  361 + },
  362 +
  363 + handleshare(index, row) {
  364 + if (!row) {
  365 + this.table_data = [];
  366 + } else {
  367 + console.log(index, row);
  368 + this.table_data.splice(index, 1);
  369 + }
  370 + UserInfo_BatchToUser(row.id);
  371 + this.$message({
  372 + message: "入库成功!",
  373 + type: "success",
  374 + });
  375 + },
  376 +
  377 + //保存
  378 + handleSave(index, row) {
  379 + delete this.table_data[index].edit;
  380 + let formData = { ...row };
  381 + delete formData.DataJsonObj;
  382 + UserInfo_Update(row);
  383 + this.table_data.push(this.table_data.pop());
  384 + this.$forceUpdate();
  385 + this.$message({
  386 + message: "保存成功!",
  387 + type: "success",
  388 + });
  389 + },
  390 + handleCancelSave(index, row) {
  391 + delete this.table_data[index].edit;
  392 + if (this.currentFilePath == row.ViewPath) {
  393 + this.currentFilePath = '';
  394 + }
  395 + this.table_data.push(this.table_data.pop());
  396 + },
  397 + handleAdd() {
  398 + var addDataJson = {};
  399 + for (var key in this.new_date_json) {
  400 + if (key === "edit") {
  401 + delete addDataJson[key];
  402 + } else if (key === "add") {
  403 + delete addDataJson[key];
  404 + } else {
  405 + addDataJson[key] = "";
  406 + }
  407 + }
  408 + addDataJson.edit = true;
  409 + addDataJson.add = true;
  410 + this.table_data.push(addDataJson);
  411 + },
  412 + //初始化编辑属性
  413 + initEditAttribute() {
  414 + var self = this;
  415 + var edit = self.edit;
  416 + },
  417 + initAddDataJson(dataArray) {
  418 + //新增时,初始化数据结构
  419 + var dataJson = dataArray;
  420 + var newDateJson = {};
  421 + for (var key in dataJson) {
  422 + if (key === "edit") {
  423 + newDateJson[key] = "true";
  424 + } else {
  425 + newDateJson[key] = "";
  426 + }
  427 + }
  428 + newDateJson["add"] = true;
  429 + this.new_date_json = newDateJson;
  430 + },
  431 + },
  432 + created() {
  433 + this.getList();
  434 + },
  435 + mounted: function () {
  436 + this.initEditAttribute();
  437 + //确保方法在页面渲染后调用
  438 + this.$nextTick(function () {
  439 + /////方法
  440 + this.tableRowClassName();
  441 + });
  442 + },
  443 + watch: {
  444 + // space_color: function () {
  445 + // //监听数据变化
  446 + // this.$nextTick(function () {
  447 + // /////方法
  448 + // this.tableRowClassName();
  449 + // });
  450 + // },
  451 + // table_data: function () {
  452 + // //监听数据变化f
  453 + // this.$nextTick(function () {
  454 + // /////方法
  455 + // this.tableRowClassName();
  456 + // });
  457 + // },
  458 + },
  459 + };
  460 +</script>
  461 +<style lang="scss" scoped>
  462 + .main-box {
  463 + /* display: flex; */
  464 + }
  465 +
  466 + .doc-view {
  467 + margin-left: 10px;
  468 + width: 100%;
  469 + flex: 1;
  470 + overflow: hidden;
  471 + }
  472 +
  473 + .el-table__expanded-cell {
  474 + padding: 10px;
  475 + }
  476 +
  477 + .demo-table-expand {
  478 + display: flex;
  479 + justify-content: space-between;
  480 + flex-wrap: wrap;
  481 + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
  482 + padding: 20px;
  483 + border-radius: 10px;
  484 + }
  485 +
  486 + .demo-table-expand .el-form-item {
  487 + margin-bottom: 10px !important;
  488 + min-width: 20%;
  489 + max-width: 50%;
  490 + }
  491 +
  492 + .demo-form-inline {
  493 + display: flex;
  494 + align-items: center;
  495 + }
  496 +
  497 + .el-form--inline .el-form-item {
  498 + display: flex;
  499 + align-items: center;
  500 + margin-bottom: 0;
  501 + }
  502 +
  503 + .aligin-center {
  504 + align-items: center;
  505 + }
  506 +
  507 + .seetingsDiv {
  508 + display: flex;
  509 + align-items: center;
  510 + width: 100%;
  511 + height: auto;
  512 + padding: 30px;
  513 + background: #efefef;
  514 + /* line-height: 60px; */
  515 + border-radius: 5px;
  516 + box-shadow: 0 0 5px #cdcdcd;
  517 + justify-content: space-between;
  518 + flex-wrap: wrap;
  519 + margin-bottom: 20px;
  520 + }
  521 +
  522 + .seetingsDiv button {
  523 + height: 40px;
  524 + background-color: #304156;
  525 + border: 0px;
  526 + margin-left: 10px;
  527 + box-shadow: 0 0 5px #cdcdcd;
  528 + float: none;
  529 + margin-right: 10px;
  530 + margin-top: 0;
  531 + }
  532 +</style>
0 \ No newline at end of file 533 \ No newline at end of file
src/views/user/userlist.vue
@@ -28,10 +28,10 @@ @@ -28,10 +28,10 @@
28 </el-form-item> 28 </el-form-item>
29 29
30 <el-form-item label="推荐指数"> 30 <el-form-item label="推荐指数">
31 - <el-rate v-model="query.stars" text-color="#ff9900" style="margin-top:10px;"> 31 + <el-rate v-model="query.stars" text-color="#ff9900" style="margin-top:10px;" show-score :allow-half="true" :max="7" :score-template="query.stars <0?'无':query.stars+' 星' ">
32 </el-rate> 32 </el-rate>
33 </el-form-item> 33 </el-form-item>
34 - 34 +
35 35
36 <el-form-item> 36 <el-form-item>
37 <el-button type="success" @click="search">搜索</el-button> 37 <el-button type="success" @click="search">搜索</el-button>
@@ -93,10 +93,14 @@ @@ -93,10 +93,14 @@
93 93
94 </template> 94 </template>
95 </el-table-column> 95 </el-table-column>
96 - <el-table-column prop="date" label="系统推荐" width="150px" sortable> 96 + <el-table-column prop="date" label="系统推荐" width="220px" sortable>
97 <template slot-scope="scope"> 97 <template slot-scope="scope">
98 - <el-rate v-model="scope.row.stars" disabled text-color="#ff9900" size="small">  
99 - </el-rate> 98 +
  99 + <el-tooltip class="item" effect="dark" :content="scope.row.stars+' 星'" placement="top-start">
  100 + <el-rate v-model="scope.row.stars" show-score :allow-half="true" :max="7" disabled text-color="#ff9900" size="mini" >
  101 + </el-rate>
  102 + </el-tooltip>
  103 +
100 </template> 104 </template>
101 </el-table-column> 105 </el-table-column>
102 <el-table-column prop="date" label="电话号码" width="100"> 106 <el-table-column prop="date" label="电话号码" width="100">
@@ -290,9 +294,9 @@ @@ -290,9 +294,9 @@
290 <el-input v-model="adminUserInfo.byyx" placeholder="请输入毕业院校" style="width: 40%"></el-input> 294 <el-input v-model="adminUserInfo.byyx" placeholder="请输入毕业院校" style="width: 40%"></el-input>
291 </el-form-item> 295 </el-form-item>
292 <el-form-item label="系统推荐" style="margin-top: 40px" prop="stars"> 296 <el-form-item label="系统推荐" style="margin-top: 40px" prop="stars">
293 - <el-rate style="width: 40%" v-model="adminUserInfo.stars" :texts="['不推荐', '一般', '满意', '很满意', '极力推荐']"  
294 - show-text>  
295 - </el-rate> 297 + <el-rate style="width: 40%" v-model="adminUserInfo.stars" show-score :allow-half="true" :max="7" :texts="['0星', '半星', '1星', '1星半', '2星', '2星半', '3星', '2星半', '4星', '4星半', '5星', '5星半', '6星', '6星半', '7星']"
  298 + show-text :score-template="adminUserInfo.stars+' 星'">
  299 + </el-rate>
296 </el-form-item> 300 </el-form-item>
297 <el-form-item label="面试进度"> 301 <el-form-item label="面试进度">
298 <el-select v-model="adminUserInfo.process" placeholder="进度"> 302 <el-select v-model="adminUserInfo.process" placeholder="进度">