hcj 2 months ago
parent c7e3f0db08
commit fc5f33924f
  1. 2
      README.md
  2. 29
      src/views/components/CrowdsourceAudit.vue
  3. 54
      src/views/components/TaskInfo.vue
  4. 1
      src/views/system/user/index.vue
  5. 89
      src/views/trainService/signlist.vue

@ -7,6 +7,8 @@ git clone https://gitee.com/y_project/RuoYi-Vue
# 进入项目目录
cd ruoyi-ui
### node版本需求 16.15.0
# 安装依赖
npm install

@ -7,7 +7,7 @@
<el-descriptions-item label="需要人数">{{ task.needPerson }}</el-descriptions-item>
<el-descriptions-item label="测试类型">
<!-- <test-type :type="task.testType"></test-type> -->
<span>{{ findLabelValueByProp(list, task.testType, 'dictValue', 'dictLabel')}}</span>
<span>{{ findLabelValueByProp(list, task.testType, 'dictValue', 'dictLabel') }}</span>
</el-descriptions-item>
<el-descriptions-item label="测试技能要求">{{ task.techNeed }}</el-descriptions-item>
<el-descriptions-item label="任务金额">
@ -30,7 +30,7 @@
</el-descriptions-item>
<el-descriptions-item label="项目附件">
<template v-if="task.attachment">
<div v-for="(it,index) in task.attachmentArr" :key="it" class="uploaddiv">
<div v-for="(it, index) in task.attachmentArr" :key="it" class="uploaddiv">
<img title="点击下载查看" @click="uploaddivClick(it)" src="@/assets/images/crowd/upload.png" alt="">
<span title="点击下载查看" @click="uploaddivClick(it)">项目附件{{ index + 1 }}</span>
</div>
@ -123,7 +123,8 @@
</el-col>
</el-row>
<div style="display: flex; justify-content: center">
<el-button type="primary" @click="audit(1)" style="padding: 10px !important; margin-right: 30px !important">审核通过</el-button>
<el-button type="primary" @click="audit(1)"
style="padding: 10px !important; margin-right: 30px !important">审核通过</el-button>
<el-button type="danger" @click="audit(2)" style="padding: 10px !important">审核不通过</el-button>
</div>
</el-form>
@ -138,10 +139,10 @@ import OnsiteType from './enum/OnsiteType'
import TesterType from './enum/TesterType'
const levelMap = {
'0':'无门槛',
'1':'一级',
'2':'二级',
'3':'三级',
'0': '无门槛',
'1': '一级',
'2': '二级',
'3': '三级',
}
export default {
@ -165,7 +166,8 @@ export default {
form: {},
task: {},
rules: {},
levelMap:levelMap
base: process.env.VUE_APP_BASE_API,
levelMap: levelMap
}
},
@ -199,23 +201,25 @@ export default {
},
uploaddivClick(it) {
if (it) {
window.location.href=it
window.location.href = this.base + it
}
}
},
created() {},
created() { },
computed: {},
}
</script>
<style scoped>
.pagedesc >>> .el-descriptions-item__label {
.pagedesc>>>.el-descriptions-item__label {
width: 120px !important;
}
.dialogax >>> .el-dialog__body {
.dialogax>>>.el-dialog__body {
height: 600px;
overflow-y: auto;
}
.uploaddiv {
display: flex;
align-items: center;
@ -223,6 +227,7 @@ export default {
cursor: pointer;
margin-right: 10px;
}
.uploaddiv img {
width: 15px;
margin-right: 5px;

@ -116,7 +116,8 @@
<div class="toptitle">{{ task.projectName }}</div>
<div class="topstatus">
<audit-status :status="task.status"></audit-status>
<el-tag style="margin-left: 10px" size="small" effect="plain"><test-type :type="task.testType"></test-type></el-tag>
<el-tag style="margin-left: 10px" size="small" effect="plain"><test-type
:type="task.testType"></test-type></el-tag>
</div>
</div>
<div class="topright">
@ -129,8 +130,10 @@
<div class="topstatus">
<process-status :processStatus="task.processStatus" />
<!-- <el-tag style="margin-left: 10px" size="small" effect="plain"><test-type :type="task.testType"></test-type></el-tag> -->
<el-tag style="margin-left: 10px" size="small" effect="plain" v-for="it in findLabelValueByProp(tasktypelist, task.testType, 'dictValue', 'dictLabel').split(',')" :key="it">
{{it}}
<el-tag style="margin-left: 10px" size="small" effect="plain"
v-for="it in findLabelValueByProp(tasktypelist, task.testType, 'dictValue', 'dictLabel').split(',')"
:key="it">
{{ it }}
</el-tag>
</div>
</div>
@ -142,10 +145,10 @@
<div class="contentinfo" v-if="!history">
<div class="lefttext">应征者总数</div>
<div class="rightinfo">{{
task.companyAppCount + task.personalAppCount == 20
? "已满"
: task.companyAppCount + task.personalAppCount + "人"
}}</div>
task.companyAppCount + task.personalAppCount == 20
? "已满"
: task.companyAppCount + task.personalAppCount + "人"
}}</div>
</div>
<div class="contentinfo">
<div class="lefttext">发布日期</div>
@ -198,13 +201,13 @@
</div>
<div class="contentinfo">
<div class="lefttext">项目附件</div>
<template v-if="task.attachment">
<div v-for="(it,index) in task.attachmentArr" :key="it" class="uploaddiv">
<img title="点击下载查看" @click="uploaddivClick(it)" src="@/assets/images/crowd/upload.png" alt="">
<span title="点击下载查看" @click="uploaddivClick(it)">项目附件{{ index + 1 }}</span>
</div>
</template>
<div v-else></div>
<template v-if="task.attachment">
<div v-for="(it, index) in task.attachmentArr" :key="it" class="uploaddiv">
<img title="点击下载查看" @click="uploaddivClick(it)" src="@/assets/images/crowd/upload.png" alt="">
<span title="点击下载查看" @click="uploaddivClick(it)">项目附件{{ index + 1 }}</span>
</div>
</template>
<div v-else></div>
</div>
</div>
</template>
@ -218,10 +221,10 @@ import OnsiteType from "@/views/components/enum/OnsiteType";
import AuditStatus from "@/views/components/enum/AuditStatus";
import mixin from '@/mixin/index.js'
const levelMap = {
'0':'无门槛',
'1':'一级',
'2':'二级',
'3':'三级',
'0': '无门槛',
'1': '一级',
'2': '二级',
'3': '三级',
}
export default {
name: "TaskInfo",
@ -240,7 +243,8 @@ export default {
data() {
return {
task: {},
levelMap:levelMap
base: process.env.VUE_APP_BASE_API,
levelMap: levelMap
};
},
methods: {
@ -252,7 +256,7 @@ export default {
},
uploaddivClick(it) {
if (it) {
window.location.href=it
window.location.href = this.base + it
}
}
},
@ -267,12 +271,15 @@ export default {
cursor: pointer;
margin-right: 10px;
}
.uploaddiv img {
width: 15px;
margin-right: 5px;
}
.taskinfo {
width: 100%;
// padding: 20px;
// box-shadow: 0px 2px 8px 0px rgba(54, 61, 67, 0.3);
.modeltitel {
@ -282,6 +289,7 @@ export default {
font-size: 20px;
font-weight: 700;
color: #333333;
.line {
width: 5px;
height: 25px;
@ -289,13 +297,16 @@ export default {
margin-right: 10px;
}
}
.taskinfotop {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.topleft {
padding: 20px 0;
.toptitle {
font-size: 18px;
font-weight: 700;
@ -303,17 +314,20 @@ export default {
margin-bottom: 10px;
}
}
.topright {
font-size: 18px;
font-weight: 700;
color: rgb(253, 70, 26);
}
}
.contentinfo {
font-size: 16px;
color: rgb(128, 128, 128);
display: flex;
margin-bottom: 10px;
.lefttext {
min-width: 100px;
}

@ -313,6 +313,7 @@ export default {
}
],
phonenumber: [
{ required: true, message: "手机号码不能为空", trigger: "blur" },
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码",

@ -143,7 +143,8 @@
<el-form v-else :model="form" :rules="rules" ref="form" label-width="120px" inline>
<!-- 类型 -->
<el-form-item label="培训班类型" prop="classType">
<el-select v-model="form.classType" @change="classTypeChange">
<el-select v-model="form.classType" @change="classTypeChange" :disabled="classTypeDisabled"
key="class-type">
<el-option label="校企合作班" :value="0"></el-option>
<el-option label="线下培训进阶班" :value="1"></el-option>
<el-option label="可靠性人才培训班" :value="2"></el-option>
@ -164,7 +165,8 @@
</el-select>
</el-form-item>
<el-form-item label="班级代号" prop="trainClassCode" v-if="form.classType == 0">
<el-input v-model="form.trainClassCode" placeholder="请输入班级代号" clearable size="small" />
<el-input v-model="form.trainClassCode" placeholder="请输入班级代号" key="class-code" clearable
size="small" />
</el-form-item>
<el-form-item label="班级名称" prop="trainClassName">
@ -282,7 +284,7 @@ import JsonTool from '@/components/jsonTool'
export default {
name: 'peixunbaoming',
// formatForm
components: { ImageUpload, NonimageUpload, JsonTool , },
components: { ImageUpload, NonimageUpload, JsonTool, },
data() {
return {
classMap: classMap,
@ -345,6 +347,7 @@ export default {
// Json
signTable: false,
activeRowId: '',
classTypeDisabled: true
}
},
@ -359,8 +362,82 @@ export default {
this.$refs.jsontool.jsonData = row.data
this.$refs.jsontool.formatCode()
} else {
this.$refs.jsontool.jsonData =
'[{"name":"姓名","type":"input","key":"name","value":""},{"title":"在校职务","type":"input","key":"title","value":""},{"mobile":"手机号","type":"input","key":"mobile","value":""},{"college":"院校全称","type":"input","key":"college","value":""},{"address":"院校所在地址","type":"input","key":"address","value":""},{"payType":"培训付款方式","type":"radio","key":"payType","value":["公对公转账,请于报到前提供截图","现场支付(公务卡、微信、支付宝、现金)"]},{"sex":"性别","type":"radio","key":"sex","value":["男","女"]},{"hotel":"是否需要统一安排住宿","type":"radio","key":"hotel","value":["大床房(付房费全额)","标间(独立居住、付全额房费)","标间(拼房、付房费一半),无指定合住人员","标间(拼房、付房费一半),指定合住人员","其他,请说明,包括非指定日期的订房","无须订房,自行安排"]},{"addWeixin":"是否添加业务负责人微信","type":"radio","key":"addWeixin","value":["是","否"]},{"suggestion":"针对此次培训,您还有什么建议","type":"textarea","key":"suggestion","value":""}]'
this.$refs.jsontool.jsonData =
`
[
{
"name":"姓名",
"type":"input",
"key":"name",
"value":""
},
{
"title":"在校职务",
"type":"input",
"key":"title",
"value":""
},
{
"mobile":"手机号",
"type":"input",
"key":"mobile",
"value":""
},
{
"college":"院校全称",
"type":"input",
"key":"college",
"value":""
},
{
"address":"院校所在地址",
"type":"input",
"key":"address",
"value":""
},
{
"payType":"培训付款方式",
"type":"radio",
"key":"payType",
"value":[
"公对公转账,请于报到前提供截图",
"现场支付(公务卡、微信、支付宝、现金)"]
},
{
"sex":"性别",
"type":"radio",
"key":"sex",
"value":[
"男",
"女"]
},
{
"hotel":"是否需要统一安排住宿",
"type":"radio",
"key":"hotel",
"value":[
"大床房(付房费全额)",
"标间(独立居住、付全额房费)",
"标间(拼房、付房费一半),无指定合住人员",
"标间(拼房、付房费一半),指定合住人员",
"其他,请说明,包括非指定日期的订房",
"无须订房,自行安排"]
},
{
"addWeixin":"是否添加业务负责人微信",
"type":"radio",
"key":"addWeixin",
"value":[
"是",
"否"]
},
{
"suggestion":"针对此次培训,您还有什么建议",
"type":"textarea",
"key":"suggestion",
"value":""
}]
`
this.$refs.jsontool.formatCode()
}
this.$refs.jsontool.formatCode()
@ -429,6 +506,7 @@ export default {
async modify(row) {
this.title = '修改班级'
this.form = JSON.parse(JSON.stringify(row))
// this.classTypeDisabled = true
// 线
if (row.classType == 4) {
this.rules.trainStartTime = []
@ -532,6 +610,7 @@ export default {
},
//
colsedia() {
// this.classTypeDisabled = false
this.$refs['form']?.resetFields()
this.$refs['copyClassForm']?.resetFields()
this.copyClassForm = {

Loading…
Cancel
Save