Commit d15d61b9 authored by 小费同学阿's avatar 小费同学阿 💬

Merge branch 'develop' of http://gitlab.91isoft.com:90/car-test/web into developer/feijinlian

parents 4d14c642 326171f0
...@@ -619,6 +619,7 @@ export default { ...@@ -619,6 +619,7 @@ export default {
}, },
/* 返回跳转*/ /* 返回跳转*/
goToProcessedReview() { goToProcessedReview() {
this.$modal.msgSuccess('确认提交成功')
this.$router.push('/task/on') this.$router.push('/task/on')
}, },
getRows(i) { getRows(i) {
......
...@@ -129,6 +129,24 @@ ...@@ -129,6 +129,24 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<el-form-item label="保密等级" prop="confidentialityLevel">
<el-select
v-model="model.confidentialityLevel"
placeholder="请选择"
clearable
style="width: 100%"
>
<el-option
v-for="(item, index) in dict.type.confidentiality_level"
:key="index"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row> </el-row>
<div class="subtitle">小组信息</div> <div class="subtitle">小组信息</div>
<el-table <el-table
...@@ -151,6 +169,7 @@ ...@@ -151,6 +169,7 @@
:key="index" :key="index"
:label="item.name" :label="item.name"
:value="item.name" :value="item.name"
:disabled="item.disabled"
> >
</el-option> </el-option>
</el-select> </el-select>
...@@ -200,7 +219,7 @@ ...@@ -200,7 +219,7 @@
type="primary" type="primary"
icon="el-icon-edit" icon="el-icon-edit"
plain plain
@click="handleSavePeople()" @click="handleSavePeople(scope.row)"
> >
保存 保存
</el-button> </el-button>
...@@ -238,25 +257,30 @@ ...@@ -238,25 +257,30 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="生产企业" prop="productionEnterprise"> <el-form-item label="生产企业" prop="productionEnterprise">
<el-input <el-select
v-model="model.productionEnterprise" v-model="model.productionEnterprise"
placeholder="请输入" placeholder="请选择"
clearable clearable
/> filterable
style="width: 100%"
>
<el-option
v-for="(item, index) in productionEnterpriseList"
:key="index"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="商标" prop="trademark"> <el-form-item label="商标" prop="trademark">
<el-upload <ImageUpload
class="avatar-uploader" v-model="model.trademark"
action="https://jsonplaceholder.typicode.com/posts/" :is-show-tip="false"
:show-file-list="false" :limit="1"
:on-success="handleAvatarSuccess" ></ImageUpload>
:before-upload="beforeAvatarUpload"
>
<img v-if="imageUrl" :src="imageUrl" class="avatar" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
...@@ -351,7 +375,7 @@ ...@@ -351,7 +375,7 @@
</template> </template>
<script> <script>
export default { export default {
dicts: ['sys_task_status', 'sys_pro'], dicts: ['sys_task_status', 'sys_pro', 'confidentiality_level'],
data() { data() {
return { return {
name: '', name: '',
...@@ -366,7 +390,7 @@ export default { ...@@ -366,7 +390,7 @@ export default {
{ required: true, message: '任务名称不能为空', trigger: 'blur' } { required: true, message: '任务名称不能为空', trigger: 'blur' }
], ],
taskStatus: [ taskStatus: [
{ required: true, message: '任务状态不能为空', trigger: 'blur' } { required: true, message: '任务状态不能为空', trigger: 'change' }
], ],
productName: [ productName: [
{ required: true, message: '产品名称不能为空', trigger: 'blur' } { required: true, message: '产品名称不能为空', trigger: 'blur' }
...@@ -396,14 +420,17 @@ export default { ...@@ -396,14 +420,17 @@ export default {
vehicleIdentificationNumber: [ vehicleIdentificationNumber: [
{ required: true, message: '车辆识别码不能为空', trigger: 'blur' } { required: true, message: '车辆识别码不能为空', trigger: 'blur' }
], ],
confidentialityLevel: [
{ required: true, message: '保密等级不能为空', trigger: 'change' }
],
sampleName: [ sampleName: [
{ required: true, message: '样品名称不能为空', trigger: 'blur' } { required: true, message: '样品名称不能为空', trigger: 'blur' }
], ],
productionEnterprise: [ productionEnterprise: [
{ required: true, message: '生产企业不能为空', trigger: 'blur' } { required: true, message: '生产企业不能为空', trigger: 'change' }
], ],
trademark: [ trademark: [
{ required: true, message: '商标不能为空', trigger: 'blur' } { required: true, message: '商标不能为空', trigger: 'change' }
], ],
sampleSender: [ sampleSender: [
{ required: true, message: '送样者不能为空', trigger: 'blur' } { required: true, message: '送样者不能为空', trigger: 'blur' }
...@@ -421,25 +448,63 @@ export default { ...@@ -421,25 +448,63 @@ export default {
{ required: true, message: '检验依据不能为空', trigger: 'blur' } { required: true, message: '检验依据不能为空', trigger: 'blur' }
], ],
inspectionItem: [ inspectionItem: [
{ required: true, message: '检验项目不能为空', trigger: 'blur' } { required: true, message: '检验项目不能为空', trigger: 'change' }
] ]
}, },
userList: [ userList: [
{ name: '小明', role: '组长', dept: '第一部门' }, { name: '老大', role: '组长', dept: '第一部门' },
{ name: '小华', role: '组员', dept: '第一部门' }, { name: '老二', role: '组员', dept: '第一部门' },
{ name: '小三', role: '组员', dept: '第一部门' }, { name: '老三', role: '组员', dept: '第一部门' },
{ name: '小四', role: '组员', dept: '第一部门' }, { name: '老四', role: '组员', dept: '第一部门' },
{ name: '小五', role: '组员', dept: '第一部门' } { name: '老五', role: '组员', dept: '第一部门' }
],
imageUrl: '',
productionEnterpriseList: [
{
value: 0,
label: '车企一'
},
{
value: 1,
label: '车企二'
},
{
value: 2,
label: '车企三'
},
{
value: 3,
label: '车企四'
},
{
value: 4,
label: '车企五'
}
] ]
} }
}, },
watch: {
'model.trademark': {
handler(newValue, oldValue) {
if (newValue) {
console.log('aaa')
this.$refs.form.clearValidate('trademark')
} else {
this.$refs.form.validateField('trademark')
}
}
}
},
methods: { methods: {
/** /**
* 小组信息修改 * 小组信息修改
* @param row 行内信息 * @param row 行内信息
*/ */
handleUpdate(row) { handleUpdate(row) {
row.name = '' console.log('修改', row)
// 取消禁用
this.userList.find(item => item.name === row.name).disabled = false
this.tableData.find(item => item.name === row.name).name = ''
}, },
/** /**
* 小组信息删除 * 小组信息删除
...@@ -456,18 +521,22 @@ export default { ...@@ -456,18 +521,22 @@ export default {
confirmButtonClass: 'queryBtn' confirmButtonClass: 'queryBtn'
}).then(() => { }).then(() => {
this.tableData = this.tableData.filter(item => item.name !== row.name) this.tableData = this.tableData.filter(item => item.name !== row.name)
// 把当前人取消禁用
this.userList.find(item => item.name === row.name).disabled = false
}) })
}, },
/** /**
* 保存人员 * 保存人员
* @param row * @param row
*/ */
handleSavePeople() { handleSavePeople(row) {
console.log('name', this.name)
const obj = this.userList.find(item => item.name === this.name) const obj = this.userList.find(item => item.name === this.name)
this.tableData[this.tableData.length - 1].name = this.name const currentData = this.tableData.find(item => item.name === row.name)
this.tableData[this.tableData.length - 1].dept = obj.dept currentData.name = this.name
this.tableData[this.tableData.length - 1].role = obj.role currentData.dept = obj.dept
currentData.role = obj.role
// 已被选择的人做禁用
this.userList.find(item => item.name === this.name).disabled = true
this.name = '' this.name = ''
}, },
/** /**
...@@ -482,11 +551,17 @@ export default { ...@@ -482,11 +551,17 @@ export default {
* 添加小组成员点击按钮 * 添加小组成员点击按钮
*/ */
handleAddNumber() { handleAddNumber() {
console.log('aaa', this.tableData) console.log('添加小组人', this.tableData)
// 检验 // 检验
if (this.tableData.length >= 1) { if (this.tableData.length >= 1) {
const lastObj = this.tableData[this.tableData.length - 1] const lastObj = this.tableData[this.tableData.length - 1]
if (lastObj.name === '') { let num = 0
this.tableData.forEach(item => {
if (item.name === '') {
num++
}
})
if (lastObj.name === '' || num === 1) {
this.$message.error('请填写完此成员信息') this.$message.error('请填写完此成员信息')
return return
} else { } else {
...@@ -495,10 +570,6 @@ export default { ...@@ -495,10 +570,6 @@ export default {
} else { } else {
this.tableData.push({ name: '' }) this.tableData.push({ name: '' })
} }
// userList数组减去tableData数组相同的对象
this.userList = this.userList.filter(
itemA => !this.tableData.some(itemB => itemA.name === itemB.name)
)
}, },
handleNameChange(value) {}, handleNameChange(value) {},
handleAvatarSuccess(res, file) { handleAvatarSuccess(res, file) {
...@@ -520,7 +591,10 @@ export default { ...@@ -520,7 +591,10 @@ export default {
handleAdd() { handleAdd() {
this.$refs.form.validate(valid => { this.$refs.form.validate(valid => {
if (valid) { if (valid) {
console.log('aaaa') this.$modal.msgSuccess('发布成功')
this.$router.push({
path: '/task/on'
})
} }
}) })
}, },
...@@ -528,7 +602,7 @@ export default { ...@@ -528,7 +602,7 @@ export default {
handleSave() { handleSave() {
this.$refs.form.validate(valid => { this.$refs.form.validate(valid => {
if (valid) { if (valid) {
console.log('aaaa') this.$modal.msgSuccess('暂存成功')
} }
}) })
} }
......
...@@ -18,17 +18,28 @@ ...@@ -18,17 +18,28 @@
<el-row> <el-row>
<!-- 步骤条 --> <!-- 步骤条 -->
<el-col :span="2"> <el-col :span="2">
<div class="left-content" style="height: 300px"> <div class="left-content" style="height: 300px; width: 110px">
<div <div v-for="(item, index) in circleList" :key="index">
v-for="(item, index) in circleList" <div
:key="index" :class="{
:class="{ 'exclamation-point': item.problem === true,
'select-circle': item.checked === true, 'no-exclamation-point': item.problem === false
'no-select-circle': item.checked === false }"
}" >
@click="handleCircle(item)" <div v-show="item.problem" class="exclamation">!</div>
> </div>
<span class="inner-text">{{ item.id }}</span> <div
:class="{
'select-circle': item.checked === true,
'no-select-circle': item.checked === false
}"
@click="handleCircle(item)"
>
<span class="inner-text">{{ item.id }}</span>
</div>
<span v-show="item.tick" class="tick-class">
<i class="el-icon-check" />
</span>
</div> </div>
</div> </div>
</el-col> </el-col>
...@@ -57,20 +68,22 @@ ...@@ -57,20 +68,22 @@
>车辆制造商是否能够提供/展示汽车信息安全管理制度文件,制度文件应定义信息安全政策以及信息安全规则和流程,信息安全政策应致力于管理与车辆制造商活动相关的信息安全风险。</span >车辆制造商是否能够提供/展示汽车信息安全管理制度文件,制度文件应定义信息安全政策以及信息安全规则和流程,信息安全政策应致力于管理与车辆制造商活动相关的信息安全风险。</span
> >
</el-form-item> </el-form-item>
<el-form-item label="符合场景"> <el-form-item :label="'符合场景'">
<el-button type="warning" @click="handleAddScene"> <template slot="label">
新增场景 <span>符合场景</span>
</el-button> <el-button
class="label-btn"
size="mini"
type="warning"
@click="handleAddScene"
>
<span>新增场景</span>
</el-button>
</template>
<div class="match-scene"> <div class="match-scene">
<el-checkbox v-model="checked"> <div>1.管理制度发布会红头文件</div>
1.管理制度发布会红头文件 <div>2.管理制度正式发布会议纪要</div>
</el-checkbox> <div>3.专用系统正式发布流程或记录</div>
<el-checkbox v-model="checkedTwo">
2.管理制度正式发布会议纪要
</el-checkbox>
<el-checkbox v-model="checkedThree">
3.专用系统正式发布流程或记录
</el-checkbox>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="审查结果"> <el-form-item label="审查结果">
...@@ -216,22 +229,26 @@ ...@@ -216,22 +229,26 @@
</el-card> </el-card>
</el-form-item> </el-form-item>
<el-form-item label="条目填写人"> <el-form-item label="条目填写人">
<span></span> <span>小刚</span>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
<div class="bottom-btn"> <div class="bottom-btn">
<el-button type="warning">保存当前条目</el-button> <el-button type="warning" @click="saveCurrentItem">
<el-button type="primary">提交问卷</el-button> 保存当前条目
</el-button>
<el-button type="primary" @click="submitQuestionnaire"
>提交问卷</el-button
>
</div> </div>
</el-card> </el-card>
<!-- 新增场景对话框 --> <!-- 新增场景对话框 -->
<el-dialog <el-dialog
title="新增场景对话框" title="新增场景对话框"
:visible.sync="senceDialogVisible" :visible.sync="senceDialogVisible"
width="30%" width="35%"
append-to-body append-to-body
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
...@@ -256,6 +273,7 @@ ...@@ -256,6 +273,7 @@
<el-select <el-select
v-model="sceneForm.reviewType" v-model="sceneForm.reviewType"
placeholder="请选择评审类型" placeholder="请选择评审类型"
style="width: 100%"
> >
<el-option <el-option
v-for="item in reviewTypeOptions" v-for="item in reviewTypeOptions"
...@@ -269,6 +287,7 @@ ...@@ -269,6 +287,7 @@
<el-select <el-select
v-model="sceneForm.sceneClassification" v-model="sceneForm.sceneClassification"
placeholder="请选择评审类型" placeholder="请选择评审类型"
style="width: 100%"
> >
<el-option <el-option
v-for="item in reviewTypeOptions" v-for="item in reviewTypeOptions"
...@@ -319,16 +338,16 @@ export default { ...@@ -319,16 +338,16 @@ export default {
form: {}, form: {},
checked: false, checked: false,
circleList: [ circleList: [
{ id: 1, checked: true }, { id: 1, checked: false, problem: false, tick: true },
{ id: 2, checked: false }, { id: 2, checked: true, problem: false, tick: false },
{ id: 3, checked: false }, { id: 3, checked: false, problem: true, tick: false },
{ id: 4, checked: false }, { id: 4, checked: false, problem: false, tick: false },
{ id: 5, checked: false }, { id: 5, checked: false, problem: false, tick: false },
{ id: 6, checked: false }, { id: 6, checked: false, problem: false, tick: false },
{ id: 7, checked: false }, { id: 7, checked: false, problem: false, tick: false },
{ id: 8, checked: false }, { id: 8, checked: false, problem: false, tick: false },
{ id: 9, checked: false }, { id: 9, checked: false, problem: false, tick: false },
{ id: 10, checked: false } { id: 10, checked: false, problem: false, tick: false }
], ],
fileRules: { fileRules: {
enterpriseName: [ enterpriseName: [
...@@ -384,6 +403,9 @@ export default { ...@@ -384,6 +403,9 @@ export default {
reviewTypeOptions: [] reviewTypeOptions: []
} }
}, },
created() {
console.log('人', this.$store.state.user.name)
},
methods: { methods: {
/** /**
* 点击左侧圆圈触发的回调函数 * 点击左侧圆圈触发的回调函数
...@@ -404,6 +426,14 @@ export default { ...@@ -404,6 +426,14 @@ export default {
this.senceDialogVisible = true this.senceDialogVisible = true
console.log('a') console.log('a')
}, },
// 保存当前条目
saveCurrentItem() {
this.$modal.msgSuccess('保存当前条目成功')
},
submitQuestionnaire() {
this.$modal.msgSuccess('提交问卷成功')
this.$router.back()
},
// 新增场景对话框关闭时触发的回调函数 // 新增场景对话框关闭时触发的回调函数
handleSceneClose() { handleSceneClose() {
this.senceDialogVisible = false this.senceDialogVisible = false
...@@ -455,6 +485,43 @@ export default { ...@@ -455,6 +485,43 @@ export default {
} }
} }
.left-content { .left-content {
.tick-class {
float: right;
position: relative;
top: -1.8em;
left: -1em;
i {
color: #25c173;
}
}
.no-exclamation-point {
float: left;
width: 1px;
height: 1px;
padding-left: 30px;
}
.exclamation-point {
float: left;
margin-top: 6px;
margin-right: 10px;
position: relative;
width: 20px;
height: 20px;
border: 2px solid #f56c6c;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
font-size: 24px;
font-weight: bold;
margin-bottom: 5px;
.exclamation {
position: absolute;
font-size: 12px;
color: #f56c6c;
font-weight: bold;
}
}
.no-select-circle { .no-select-circle {
cursor: pointer; cursor: pointer;
width: 35px; width: 35px;
...@@ -528,10 +595,11 @@ export default { ...@@ -528,10 +595,11 @@ export default {
} }
} }
.file-prompt { .file-prompt {
margin: 10px 0 10px 0; margin: 0 0 10px 0;
padding: 10px; padding: 10px;
background-color: #ebf5ff; background-color: #ebf5ff;
div { div {
font-size: 12px;
padding-left: 10px; padding-left: 10px;
i { i {
color: #409eff; color: #409eff;
...@@ -539,4 +607,12 @@ export default { ...@@ -539,4 +607,12 @@ export default {
} }
} }
} }
.label-btn {
width: 60px;
span {
font-size: 12px;
position: relative;
right: 9px;
}
}
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment