public/tableCompanyExample.docxBinary files differ
public/tableDeptExample.docxBinary files differ
src/router/index.js
@@ -53,6 +53,54 @@ hidden: true }, { path: '/courseManage', component: Layout, redirect: '/onlineEducation/courseManage', children: [ { path: 'course', component: () => import('@/views/work/onlineEducation/courseManage/index.vue'), name: 'course', } ] }, { path: '/class', component: Layout, redirect: '/class', children: [ { path: '/class', component: () => import('@/views/work/onlineEducation/classHourBatch/index.vue'), name: 'class', } ] }, { path: '/group', component: Layout, redirect: '/group', children: [ { path: '/group', component: () => import('@/views/work/onlineEducation/groupExams/index.vue'), name: 'group', } ] }, { path: '/offline', component: Layout, redirect: '/offline', children: [ { path: '/offline', component: () => import('@/views/work/onlineEducation/offlineEducation/index.vue'), name: 'offline', } ] }, { path: '/chapters', component: Layout, redirect: '/chapters', @@ -104,6 +152,7 @@ } ] }, { path: '/newPage', component: Layout, src/views/build/conpanyFunctionConsult/qualityObjectives/table/components/tableCompanyDialog.vue
@@ -63,45 +63,99 @@ <el-table-column type="index" label="序号" align="center"></el-table-column> <el-table-column label="目标项目" prop="message" align="center" /> <el-table-column label="目标值" align="center" > <!-- <template #default="{row,$index}">--> <!-- <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.num'" :rules="state.rules.num">--> <!-- <el-input :disabled="title === '查看'" type="textarea" v-model="row.num" placeholder="请输入"></el-input>--> <!-- </el-form-item>--> <!-- </template>--> <template #default="{row,$index}"> <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.num'" :rules="state.rules.num"> <el-input :disabled="title === '查看'" type="textarea" v-model="row.num" placeholder="请输入"></el-input> </el-form-item> <div v-for="(i,index) in row.qualityTargetMesses" :key="index"> <el-form-item :prop="'qualityTargets.' + '[' + $index + '].' +'qualityTargetMesses.' + '[' + index + ']' + '.num'" :rules="state.rules.num"> <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.num" placeholder="请输入"></el-input> </el-form-item> </div> </template> </el-table-column> <el-table-column label="实施措施及需要的资源" align="center" width="180"> <!-- <template #default="{row,$index}">--> <!-- <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.method'" :rules="state.rules.method">--> <!-- <el-input :disabled="title === '查看'" type="textarea" v-model="row.method" placeholder="请输入"></el-input>--> <!-- </el-form-item>--> <!-- </template>--> <template #default="{row,$index}"> <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.method'" :rules="state.rules.method"> <el-input :disabled="title === '查看'" type="textarea" v-model="row.method" placeholder="请输入"></el-input> </el-form-item> <div v-for="(i,index) in row.qualityTargetMesses" :key="index"> <el-form-item :prop="'qualityTargets.' + '[' + $index + '].' +'qualityTargetMesses.' + '[' + index + ']' + '.method'" :rules="state.rules.method"> <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.method" placeholder="请输入"></el-input> </el-form-item> </div> </template> </el-table-column> <el-table-column label="计算/统计方法" align="center" > <!-- <template #default="{row,$index}">--> <!-- <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.calculate'" :rules="state.rules.calculate">--> <!-- <el-input :disabled="title === '查看'" type="textarea" v-model="row.calculate" placeholder="请输入"></el-input>--> <!-- </el-form-item>--> <!-- </template>--> <template #default="{row,$index}"> <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.calculate'" :rules="state.rules.calculate"> <el-input :disabled="title === '查看'" type="textarea" v-model="row.calculate" placeholder="请输入"></el-input> </el-form-item> <div v-for="(i,index) in row.qualityTargetMesses" :key="index"> <el-form-item :prop="'qualityTargets.' + '[' + $index + '].' +'qualityTargetMesses.' + '[' + index + ']' + '.calculate'" :rules="state.rules.calculate"> <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.calculate" placeholder="请输入"></el-input> </el-form-item> </div> </template> </el-table-column> <el-table-column label="数据源" align="center" > <!-- <template #default="{row,$index}">--> <!-- <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.dataSource'" :rules="state.rules.dataSource">--> <!-- <el-input :disabled="title === '查看'" type="textarea" v-model="row.dataSource" placeholder="请输入"></el-input>--> <!-- </el-form-item>--> <!-- </template>--> <template #default="{row,$index}"> <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.dataSource'" :rules="state.rules.dataSource"> <el-input :disabled="title === '查看'" type="textarea" v-model="row.dataSource" placeholder="请输入"></el-input> </el-form-item> <div v-for="(i,index) in row.qualityTargetMesses" :key="index"> <el-form-item :prop="'qualityTargets.' + '[' + $index + '].' +'qualityTargetMesses.' + '[' + index + ']' + '.dataSource'" :rules="state.rules.dataSource"> <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.dataSource" placeholder="请输入"></el-input> </el-form-item> </div> </template> </el-table-column> <el-table-column label="提供部门" align="center" > <!-- <template #default="{row,$index}">--> <!-- <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.departName'" :rules="state.rules.departName">--> <!-- <el-input :disabled="title === '查看'" type="textarea" v-model="row.departName" placeholder="请输入"></el-input>--> <!-- </el-form-item>--> <!-- </template>--> <template #default="{row,$index}"> <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.departName'" :rules="state.rules.departName"> <el-input :disabled="title === '查看'" type="textarea" v-model="row.departName" placeholder="请输入"></el-input> </el-form-item> <div v-for="(i,index) in row.qualityTargetMesses" :key="index"> <el-form-item :prop="'qualityTargets.' + '[' + $index + '].' +'qualityTargetMesses.' + '[' + index + ']'+ '.departName'" :rules="state.rules.departName"> <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.departName" placeholder="请输入"></el-input> </el-form-item> </div> </template> </el-table-column> <el-table-column label="考核频次" align="center" > <!-- <template #default="{row,$index}">--> <!-- <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.frequency'" :rules="state.rules.frequency">--> <!-- <el-input :disabled="title === '查看'" type="textarea" v-model="row.frequency" placeholder="请输入"></el-input>--> <!-- </el-form-item>--> <!-- </template>--> <template #default="{row,$index}"> <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.frequency'" :rules="state.rules.frequency"> <el-input :disabled="title === '查看'" type="textarea" v-model="row.frequency" placeholder="请输入"></el-input> </el-form-item> <div v-for="(i,index) in row.qualityTargetMesses" :key="index"> <el-form-item :prop="'qualityTargets.' + '[' + $index + '].'+'qualityTargetMesses.' + '[' + index + ']' + '.frequency'" :rules="state.rules.frequency"> <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.frequency" placeholder="请输入"></el-input> </el-form-item> </div> </template> </el-table-column> <el-table-column label="操作" align="center" width="120" v-if="title !== '查看'" > <template #default="scope"> <el-button link type="primary" @click="addObject(scope.row)" >添加</el-button> <el-button link type="danger" @click="delObject(scope.row)" >删除</el-button> </template> </el-table-column> </el-table> @@ -405,7 +459,8 @@ state.form.qualityTargets = res.data.map(item => { return { id: item.id, message: item.message message: item.message, qualityTargetMesses: [{qualityTargetId: item.id}] } }) @@ -458,6 +513,27 @@ } } } const addObject = (val) => { console.log('val',state.form.qualityTargets) state.form.qualityTargets.forEach(item => { if(item.id == val.id){ item.qualityTargetMesses.push({qualityTargetId: item.id}) } }) } const delObject = (val) => { state.form.qualityTargets.forEach(item => { if(item.id == val.id){ if(item.qualityTargetMesses.length == 1){ ElMessage.warning('至少保留一组数据') return } item.qualityTargetMesses.pop() } }) } defineExpose({ openDialog }); src/views/build/conpanyFunctionConsult/qualityObjectives/table/components/tableDeptDialog.vue
@@ -58,38 +58,83 @@ <el-table-column type="index" label="序号" align="center"></el-table-column> <el-table-column label="目标项目" prop="message" align="center" /> <el-table-column label="目标展开" align="center" > <!-- <template #default="{row,$index}">--> <!-- <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.method'" :rules="state.rules.method">--> <!-- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="row.method" placeholder="请输入"></el-input>--> <!-- </el-form-item>--> <!-- </template>--> <template #default="{row,$index}"> <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.method'" :rules="state.rules.method"> <el-input :disabled="title === '查看'" type="textarea" v-model="row.method" placeholder="请输入"></el-input> </el-form-item> <div v-for="(i,index) in row.qualityTargetMesses" :key="index"> <el-form-item :prop="'qualityTargets.' + '[' + $index + '].' +'qualityTargetMesses.' + '[' + index + ']' + '.method'" :rules="state.rules.method"> <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.method" placeholder="请输入"></el-input> </el-form-item> </div> </template> </el-table-column> <el-table-column label="实施对策" align="center" > <template #default="{row,$index}"> <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.calculate'" :rules="state.rules.calculate"> <el-input :disabled="title === '查看'" type="textarea" v-model="row.calculate" placeholder="请输入"></el-input> </el-form-item> <div v-for="(i,index) in row.qualityTargetMesses" :key="index"> <el-form-item :prop="'qualityTargets.' + '[' + $index + '].'+'qualityTargetMesses.' + '[' + index + ']' + '.calculate'" :rules="state.rules.calculate"> <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.calculate" placeholder="请输入"></el-input> </el-form-item> </div> </template> <!-- <template #default="{row,$index}">--> <!-- <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.calculate'" :rules="state.rules.calculate">--> <!-- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="row.calculate" placeholder="请输入"></el-input>--> <!-- </el-form-item>--> <!-- </template>--> </el-table-column> <el-table-column label="责任人" align="center" > <template #default="{row,$index}"> <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.dutyName'" :rules="state.rules.dutyName"> <el-input :disabled="title === '查看'" type="textarea" v-model="row.dutyName" placeholder="请输入"></el-input> </el-form-item> <div v-for="(i,index) in row.qualityTargetMesses" :key="index"> <el-form-item :prop="'qualityTargets.' + '[' + $index + '].'+'qualityTargetMesses.' + '[' + index + ']' + '.dutyName'" :rules="state.rules.dutyName"> <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.dutyName" placeholder="请输入"></el-input> </el-form-item> </div> </template> <!-- <template #default="{row,$index}">--> <!-- <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.dutyName'" :rules="state.rules.dutyName">--> <!-- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="row.dutyName" placeholder="请输入"></el-input>--> <!-- </el-form-item>--> <!-- </template>--> </el-table-column> <el-table-column label="考核时机" align="center" > <template #default="{row,$index}"> <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.frequency'" :rules="state.rules.frequency"> <el-input :disabled="title === '查看'" type="textarea" v-model="row.frequency" placeholder="请输入"></el-input> </el-form-item> <div v-for="(i,index) in row.qualityTargetMesses" :key="index"> <el-form-item :prop="'qualityTargets.' + '[' + $index + '].' +'qualityTargetMesses.' + '[' + index + ']'+ '.frequency'" :rules="state.rules.frequency"> <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.frequency" placeholder="请输入"></el-input> </el-form-item> </div> </template> <!-- <template #default="{row,$index}">--> <!-- <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.frequency'" :rules="state.rules.frequency">--> <!-- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="row.frequency" placeholder="请输入"></el-input>--> <!-- </el-form-item>--> <!-- </template>--> </el-table-column> <el-table-column label="备注" align="center" > <template #default="{row,$index}"> <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.remark'"> <el-input :disabled="title === '查看'" type="textarea" v-model="row.remark" placeholder="请输入"></el-input> </el-form-item> <div v-for="(i,index) in row.qualityTargetMesses" :key="index"> <el-form-item :prop="'qualityTargets.' + '[' + $index + '].'+'qualityTargetMesses.' + '[' + index + ']' + '.remark'"> <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.remark"></el-input> </el-form-item> </div> </template> <!-- <template #default="{row,$index}">--> <!-- <el-form-item :prop="'qualityTargets.' + '[' + $index + ']' + '.remark'">--> <!-- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="row.remark" placeholder="请输入"></el-input>--> <!-- </el-form-item>--> <!-- </template>--> </el-table-column> <el-table-column label="操作" align="center" width="120" v-if="title !== '查看'" > <template #default="scope"> <el-button link type="primary" @click="addObject(scope.row)" >添加</el-button> <el-button link type="danger" @click="delObject(scope.row)" >删除</el-button> </template> </el-table-column> </el-table> @@ -283,6 +328,7 @@ } const onSubmit = async () => { const valid = await busRef.value.validate(); console.log('sta',state.form) if(valid){ if(title.value === '新增'){ console.log('sta',state.form) @@ -390,7 +436,8 @@ state.form.qualityTargets = res.data.map(item => { return { id: item.id, message: item.message message: item.message, qualityTargetMesses: [{qualityTargetId: item.id}] } }) @@ -418,7 +465,27 @@ getQualityList() getPeopleList() } const addObject = (val) => { console.log('val',state.form.qualityTargets) state.form.qualityTargets.forEach(item => { if(item.id == val.id){ item.qualityTargetMesses.push({qualityTargetId: item.id}) } }) } const delObject = (val) => { state.form.qualityTargets.forEach(item => { if(item.id == val.id){ if(item.qualityTargetMesses.length == 1){ ElMessage.warning('至少保留一组数据') return } item.qualityTargetMesses.pop() } }) } defineExpose({ openDialog }); src/views/build/conpanyFunctionConsult/qualityObjectives/table/index.vue
@@ -343,7 +343,9 @@ item.tableData = item.qualityTargets.map((i,index) => { return { ...i, nuum: index+1 nuum: index+1, nuumRowSpan:`${i.qualityTargetMesses.length}cm`, messageRowSpan:`${i.qualityTargetMesses.length}cm`, } }) try { src/views/onlineEducation/questionBankManagement/questionManage/components/questionDialog.vue
@@ -160,10 +160,10 @@ id: 3, name: '判断题' }, { id: 4, name: '简答题' } // { // id: 4, // name: '简答题' // } ], optionItem: { analyze: '', src/views/onlineEducation/questionBankManagement/questionManage/index.vue
@@ -139,10 +139,10 @@ id: 3, name: '判断题' }, { id: 4, name: '简答题' } // { // id: 4, // name: '简答题' // } ], bankList: [], bankPageNum: 1, // 当前页码 src/views/work/onlineEducation/groupExams/components/examDialog.vue
@@ -208,66 +208,66 @@ </el-radio-group> </div> </div> <div style="display: flex"> <div class="group"> <div> 简答:<el-input style="max-width: 40px" v-model="state.form.easyNum"></el-input> 题 </div> <div style="margin-left: 20px"> 每题:<el-input style="max-width: 40px" v-model="state.form.easyScore"></el-input> 分 </div> </div> <div class="group" > <div> 共 <span style="max-width: 30px" v-show="state.form.easyNum && state.form.easyScore">{{state.form.easyNum * state.form.easyScore}}</span> <!-- <span v-else></span>--> 分 </div> <el-select clearable v-model="state.form.easyBankName" filterable remote reserve-keyword placeholder="请输入简答题库" remote-show-suffix :remote-method="getBankList" style="width: 160px;margin: 0 20px" @change="selectEasyValue" > <el-option v-for="item in state.bankList" :key="item.id" :label="item.name" :value="item.name" /> </el-select> <!-- <div style="display: flex">--> <!-- <div class="group">--> <!-- <div>--> <!-- 简答:<el-input style="max-width: 40px" v-model="state.form.easyNum"></el-input> 题--> <!-- </div>--> <!-- <div style="margin-left: 20px">--> <!-- 每题:<el-input style="max-width: 40px" v-model="state.form.easyScore"></el-input> 分--> <!-- </div>--> <!-- </div>--> <!-- <div class="group" >--> <!-- <div>--> <!-- 共 --> <!-- <span style="max-width: 30px" v-show="state.form.easyNum && state.form.easyScore">{{state.form.easyNum * state.form.easyScore}}</span>--> <!-- <!– <span v-else></span>–>--> <!-- 分--> <!-- </div>--> <!-- <el-select--> <!-- clearable--> <!-- v-model="state.form.easyBankId"--> <!-- v-model="state.form.easyBankName"--> <!-- filterable--> <!-- remote--> <!-- reserve-keyword--> <!-- placeholder="请输入简答题库"--> <!-- remote-show-suffix--> <!-- :remote-method="getBankList"--> <!-- style="width: 160px;margin: 0 20px"--> <!-- v-loadMoreNew:[reselectSingle]="handleScroll"--> <!-- :popper-class="reselectSingle.name"--> <!-- class="item-width"--> <!-- placeholder="请选择简答题题库"--> <!-- @change="selectEasyValue"--> <!-- >--> <!-- <el-option--> <!-- v-for="item in state.bankListSingle"--> <!-- v-for="item in state.bankList"--> <!-- :key="item.id"--> <!-- :label="item.name"--> <!-- :value="item.id"--> <!-- :value="item.name"--> <!-- />--> <!-- </el-select>--> <el-radio-group v-model="state.form.easyMethod" > <el-radio :label="1" style="max-width: 30px">随机</el-radio> <el-radio :label="2" style="max-width: 30px">顺序</el-radio> </el-radio-group> <el-radio-group v-model="state.form.easyRebuild" style="margin-left: 30px" > <el-radio :label="1" v-if="title === '编辑'" style="max-width: 30px">重新出题</el-radio> </el-radio-group> </div> </div> <!--<!– <el-select–>--> <!--<!– clearable–>--> <!--<!– v-model="state.form.easyBankId"–>--> <!--<!– style="width: 160px;margin: 0 20px"–>--> <!--<!– v-loadMoreNew:[reselectSingle]="handleScroll"–>--> <!--<!– :popper-class="reselectSingle.name"–>--> <!--<!– class="item-width"–>--> <!--<!– placeholder="请选择简答题题库"–>--> <!--<!– >–>--> <!--<!– <el-option–>--> <!--<!– v-for="item in state.bankListSingle"–>--> <!--<!– :key="item.id"–>--> <!--<!– :label="item.name"–>--> <!--<!– :value="item.id"–>--> <!--<!– />–>--> <!--<!– </el-select>–>--> <!-- <el-radio-group v-model="state.form.easyMethod" >--> <!-- <el-radio :label="1" style="max-width: 30px">随机</el-radio>--> <!-- <el-radio :label="2" style="max-width: 30px">顺序</el-radio>--> <!-- </el-radio-group>--> <!-- <el-radio-group v-model="state.form.easyRebuild" style="margin-left: 30px" >--> <!-- <el-radio :label="1" v-if="title === '编辑'" style="max-width: 30px">重新出题</el-radio>--> <!-- </el-radio-group>--> <!-- </div>--> <!-- </div>--> <span class="group" style="margin-bottom: 20px">共计: {{state.form.judgeNum * state.form.judgeScore+state.form.multiNum * state.form.multiScore+state.form.singleNum * state.form.singleScore+state.form.easyNum * state.form.easyScore}} 分</span> src/views/work/onlineEducation/questionBankManagement/questionManage/components/questionDialog.vue
@@ -160,10 +160,10 @@ id: 3, name: '判断题' }, { id: 4, name: '简答题' } // { // id: 4, // name: '简答题' // } ], optionItem: { analyze: '', src/views/work/onlineEducation/questionBankManagement/questionManage/index.vue
@@ -139,10 +139,10 @@ id: 3, name: '判断题' }, { id: 4, name: '简答题' } // { // id: 4, // name: '简答题' // } ], bankList: [], bankPageNum: 1, // 当前页码