Commit 1544d4d5375d7b9b57f39b125f3b24fd2576839f
1 parent
3cf63544
aa
Showing
20 changed files
with
1069 additions
and
554 deletions
antis-ncc-admin/src/views/tbEvaluation/Form.vue
| 1 | <template> | 1 | <template> |
| 2 | - <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" :visible.sync="visible" class="NCC-dialog NCC-dialog_center" lock-scroll width="600px"> | ||
| 3 | - <el-row :gutter="15" class="" > | ||
| 4 | - <el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" :disabled="!!isDetail" :rules="rules"> | ||
| 5 | - <el-col :span="24"> | ||
| 6 | - <el-form-item label="标题" prop="title"> | ||
| 7 | - <el-input v-model="dataForm.title" placeholder="请输入" required show-word-limit :style='{"width":"100%"}' type='textarea' :autosize='{"minRows":4,"maxRows":4}' maxlength="200" > | ||
| 8 | - </el-input> | ||
| 9 | - </el-form-item> | ||
| 10 | - </el-col> | ||
| 11 | - <el-col :span="24"> | ||
| 12 | - <el-form-item label="图片" prop="img"> | ||
| 13 | - <NCC-UploadImg v-model="dataForm.img" required :fileSize="5" sizeUnit="MB" :limit="1" > | ||
| 14 | - </NCC-UploadImg> | ||
| 15 | - </el-form-item> | ||
| 16 | - </el-col> | ||
| 17 | - <el-col :span="24"> | ||
| 18 | - <el-form-item label="图文信息" prop="editors"> | ||
| 19 | - <NCC-Quill v-model="dataForm.editors" placeholder="请输入内容..." required > | ||
| 20 | - </NCC-Quill> | ||
| 21 | - </el-form-item> | ||
| 22 | - </el-col> | ||
| 23 | - <el-col :span="24" v-if="false" > | ||
| 24 | - <el-form-item label="创建时间" prop="creatorTime"> | ||
| 25 | - <el-input v-model="dataForm.creatorTime" placeholder="系统自动生成" readonly > | ||
| 26 | - </el-input> | ||
| 27 | - </el-form-item> | ||
| 28 | - </el-col> | ||
| 29 | - <el-col :span="24" v-if="false" > | ||
| 30 | - <el-form-item label="修改时间" prop="lastModifyTime"> | ||
| 31 | - <el-input v-model="dataForm.lastModifyTime" placeholder="系统自动生成" readonly > | ||
| 32 | - </el-input> | ||
| 33 | - </el-form-item> | ||
| 34 | - </el-col> | ||
| 35 | - </el-form> | 2 | + <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" |
| 3 | + :visible.sync="visible" class="NCC-dialog NCC-dialog_center" lock-scroll width="600px"> | ||
| 4 | + <el-row :gutter="15" class=""> | ||
| 5 | + <el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" | ||
| 6 | + :disabled="!!isDetail" :rules="rules"> | ||
| 7 | + <el-col :span="24"> | ||
| 8 | + <el-form-item label="标题" prop="title"> | ||
| 9 | + <el-input v-model="dataForm.title" placeholder="请输入" required show-word-limit | ||
| 10 | + :style='{"width":"100%"}' type='textarea' :autosize='{"minRows":4,"maxRows":4}' | ||
| 11 | + maxlength="200"> | ||
| 12 | + </el-input> | ||
| 13 | + </el-form-item> | ||
| 14 | + </el-col> | ||
| 15 | + <el-col :span="24"> | ||
| 16 | + <el-form-item label="是否默认" prop="detault"> | ||
| 17 | + <el-select v-model="dataForm.detault" placeholder="请选择" clearable required | ||
| 18 | + :style='{"width":"100%"}'> | ||
| 19 | + <el-option v-for="(item, index) in detaultOptions" :key="index" :label="item.fullName" | ||
| 20 | + :value="item.id"></el-option> | ||
| 21 | + </el-select> | ||
| 22 | + </el-form-item> | ||
| 23 | + </el-col> | ||
| 24 | + <el-col :span="24"> | ||
| 25 | + <el-form-item label="图片" prop="img"> | ||
| 26 | + <NCC-UploadImg v-model="dataForm.img" required :fileSize="5" sizeUnit="MB" :limit="1"> | ||
| 27 | + </NCC-UploadImg> | ||
| 28 | + </el-form-item> | ||
| 29 | + </el-col> | ||
| 30 | + <el-col :span="24"> | ||
| 31 | + <el-form-item label="图文信息" prop="editors"> | ||
| 32 | + <NCC-Quill v-model="dataForm.editors" placeholder="请输入内容..." required> | ||
| 33 | + </NCC-Quill> | ||
| 34 | + </el-form-item> | ||
| 35 | + </el-col> | ||
| 36 | + <el-col :span="24" v-if="false"> | ||
| 37 | + <el-form-item label="创建时间" prop="creatorTime"> | ||
| 38 | + <el-input v-model="dataForm.creatorTime" placeholder="系统自动生成" readonly> | ||
| 39 | + </el-input> | ||
| 40 | + </el-form-item> | ||
| 41 | + </el-col> | ||
| 42 | + <el-col :span="24" v-if="false"> | ||
| 43 | + <el-form-item label="修改时间" prop="lastModifyTime"> | ||
| 44 | + <el-input v-model="dataForm.lastModifyTime" placeholder="系统自动生成" readonly> | ||
| 45 | + </el-input> | ||
| 46 | + </el-form-item> | ||
| 47 | + </el-col> | ||
| 48 | + </el-form> | ||
| 36 | </el-row> | 49 | </el-row> |
| 37 | <span slot="footer" class="dialog-footer"> | 50 | <span slot="footer" class="dialog-footer"> |
| 38 | <el-button @click="visible = false">取 消</el-button> | 51 | <el-button @click="visible = false">取 消</el-button> |
| @@ -42,8 +55,12 @@ | @@ -42,8 +55,12 @@ | ||
| 42 | </template> | 55 | </template> |
| 43 | <script> | 56 | <script> |
| 44 | import request from '@/utils/request' | 57 | import request from '@/utils/request' |
| 45 | - import { getDictionaryDataSelector } from '@/api/systemData/dictionary' | ||
| 46 | - import { previewDataInterface } from '@/api/systemData/dataInterface' | 58 | + import { |
| 59 | + getDictionaryDataSelector | ||
| 60 | + } from '@/api/systemData/dictionary' | ||
| 61 | + import { | ||
| 62 | + previewDataInterface | ||
| 63 | + } from '@/api/systemData/dataInterface' | ||
| 47 | export default { | 64 | export default { |
| 48 | components: {}, | 65 | components: {}, |
| 49 | props: [], | 66 | props: [], |
| @@ -53,103 +70,108 @@ | @@ -53,103 +70,108 @@ | ||
| 53 | visible: false, | 70 | visible: false, |
| 54 | isDetail: false, | 71 | isDetail: false, |
| 55 | dataForm: { | 72 | dataForm: { |
| 56 | - id:'', | ||
| 57 | - title:undefined, | ||
| 58 | - img:[], | ||
| 59 | - editors:undefined, | ||
| 60 | - creatorTime:undefined, | ||
| 61 | - lastModifyTime:undefined, | 73 | + id: '', |
| 74 | + title: undefined, | ||
| 75 | + img: [], | ||
| 76 | + detault: undefined, | ||
| 77 | + editors: undefined, | ||
| 78 | + creatorTime: undefined, | ||
| 79 | + lastModifyTime: undefined, | ||
| 62 | }, | 80 | }, |
| 81 | + detaultOptions: [{ | ||
| 82 | + "fullName": "默认", | ||
| 83 | + "id": "1" | ||
| 84 | + }, { | ||
| 85 | + "fullName": "普通", | ||
| 86 | + "id": "2" | ||
| 87 | + }], | ||
| 63 | rules: { | 88 | rules: { |
| 64 | - title:[ | ||
| 65 | - { | ||
| 66 | - required:true, | ||
| 67 | - message:'请输入标题', | ||
| 68 | - trigger:'blur' | ||
| 69 | - }, | ||
| 70 | - ], | ||
| 71 | - img:[ | ||
| 72 | - { | ||
| 73 | - required:true, | ||
| 74 | - message:'请输入图片', | ||
| 75 | - trigger:'click' | ||
| 76 | - }, | ||
| 77 | - ], | ||
| 78 | - editors:[ | ||
| 79 | - { | ||
| 80 | - required:true, | ||
| 81 | - message:'请输入图文信息', | ||
| 82 | - trigger:'blur' | ||
| 83 | - }, | ||
| 84 | - ], | 89 | + title: [{ |
| 90 | + required: true, | ||
| 91 | + message: '请输入标题', | ||
| 92 | + trigger: 'blur' | ||
| 93 | + }, ], | ||
| 94 | + img: [{ | ||
| 95 | + required: true, | ||
| 96 | + message: '请输入图片', | ||
| 97 | + trigger: 'click' | ||
| 98 | + }, ], | ||
| 99 | + editors: [{ | ||
| 100 | + required: true, | ||
| 101 | + message: '请输入图文信息', | ||
| 102 | + trigger: 'blur' | ||
| 103 | + }, ], | ||
| 104 | + detault: [{ | ||
| 105 | + required: true, | ||
| 106 | + message: '请输入是否默认', | ||
| 107 | + trigger: 'change' | ||
| 108 | + }, ], | ||
| 85 | }, | 109 | }, |
| 86 | } | 110 | } |
| 87 | }, | 111 | }, |
| 88 | computed: {}, | 112 | computed: {}, |
| 89 | - watch: {}, | ||
| 90 | - created() { | ||
| 91 | - }, | ||
| 92 | - mounted() { | ||
| 93 | - }, | 113 | + watch: {}, |
| 114 | + created() {}, | ||
| 115 | + mounted() {}, | ||
| 94 | methods: { | 116 | methods: { |
| 95 | goBack() { | 117 | goBack() { |
| 96 | - this.$emit('refresh') | ||
| 97 | - }, | 118 | + this.$emit('refresh') |
| 119 | + }, | ||
| 98 | init(id, isDetail) { | 120 | init(id, isDetail) { |
| 99 | this.dataForm.id = id || 0; | 121 | this.dataForm.id = id || 0; |
| 100 | - this.visible = true; | ||
| 101 | - this.isDetail = isDetail || false; | 122 | + this.visible = true; |
| 123 | + this.isDetail = isDetail || false; | ||
| 102 | this.$nextTick(() => { | 124 | this.$nextTick(() => { |
| 103 | this.$refs['elForm'].resetFields(); | 125 | this.$refs['elForm'].resetFields(); |
| 104 | if (this.dataForm.id) { | 126 | if (this.dataForm.id) { |
| 105 | request({ | 127 | request({ |
| 106 | url: '/api/Education/TbEvaluation/' + this.dataForm.id, | 128 | url: '/api/Education/TbEvaluation/' + this.dataForm.id, |
| 107 | method: 'get' | 129 | method: 'get' |
| 108 | - }).then(res =>{ | 130 | + }).then(res => { |
| 109 | this.dataForm = res.data; | 131 | this.dataForm = res.data; |
| 110 | - if(!this.dataForm.img)this.dataForm.img=[]; | 132 | + if (!this.dataForm.img) this.dataForm.img = []; |
| 111 | }) | 133 | }) |
| 112 | } | 134 | } |
| 113 | }) | 135 | }) |
| 114 | }, | 136 | }, |
| 115 | dataFormSubmit() { | 137 | dataFormSubmit() { |
| 116 | this.$refs['elForm'].validate((valid) => { | 138 | this.$refs['elForm'].validate((valid) => { |
| 117 | - if (valid) { | ||
| 118 | - if (!this.dataForm.id) { | ||
| 119 | - request({ | ||
| 120 | - url: `/api/Education/TbEvaluation`, | ||
| 121 | - method: 'post', | ||
| 122 | - data: this.dataForm, | ||
| 123 | - }).then((res) => { | ||
| 124 | - this.$message({ | ||
| 125 | - message: res.msg, | ||
| 126 | - type: 'success', | ||
| 127 | - duration: 1000, | ||
| 128 | - onClose: () => { | ||
| 129 | - this.visible = false, | ||
| 130 | - this.$emit('refresh', true) | ||
| 131 | - } | ||
| 132 | - }) | ||
| 133 | - }) | ||
| 134 | - } else { | ||
| 135 | - request({ | ||
| 136 | - url: '/api/Education/TbEvaluation/' + this.dataForm.id, | ||
| 137 | - method: 'PUT', | ||
| 138 | - data: this.dataForm | ||
| 139 | - }).then((res) => { | ||
| 140 | - this.$message({ | ||
| 141 | - message: res.msg, | ||
| 142 | - type: 'success', | ||
| 143 | - duration: 1000, | ||
| 144 | - onClose: () => { | ||
| 145 | - this.visible = false | ||
| 146 | - this.$emit('refresh', true) | ||
| 147 | - } | ||
| 148 | - }) | ||
| 149 | - }) | ||
| 150 | - } | ||
| 151 | - } | ||
| 152 | - }) | 139 | + if (valid) { |
| 140 | + if (!this.dataForm.id) { | ||
| 141 | + request({ | ||
| 142 | + url: `/api/Education/TbEvaluation`, | ||
| 143 | + method: 'post', | ||
| 144 | + data: this.dataForm, | ||
| 145 | + }).then((res) => { | ||
| 146 | + this.$message({ | ||
| 147 | + message: res.msg, | ||
| 148 | + type: 'success', | ||
| 149 | + duration: 1000, | ||
| 150 | + onClose: () => { | ||
| 151 | + this.visible = false, | ||
| 152 | + this.$emit('refresh', true) | ||
| 153 | + } | ||
| 154 | + }) | ||
| 155 | + }) | ||
| 156 | + } else { | ||
| 157 | + request({ | ||
| 158 | + url: '/api/Education/TbEvaluation/' + this.dataForm.id, | ||
| 159 | + method: 'PUT', | ||
| 160 | + data: this.dataForm | ||
| 161 | + }).then((res) => { | ||
| 162 | + this.$message({ | ||
| 163 | + message: res.msg, | ||
| 164 | + type: 'success', | ||
| 165 | + duration: 1000, | ||
| 166 | + onClose: () => { | ||
| 167 | + this.visible = false | ||
| 168 | + this.$emit('refresh', true) | ||
| 169 | + } | ||
| 170 | + }) | ||
| 171 | + }) | ||
| 172 | + } | ||
| 173 | + } | ||
| 174 | + }) | ||
| 153 | }, | 175 | }, |
| 154 | } | 176 | } |
| 155 | } | 177 | } |
antis-ncc-admin/src/views/tbEvaluation/index.vue
| @@ -5,7 +5,15 @@ | @@ -5,7 +5,15 @@ | ||
| 5 | <el-form @submit.native.prevent> | 5 | <el-form @submit.native.prevent> |
| 6 | <el-col :span="6"> | 6 | <el-col :span="6"> |
| 7 | <el-form-item label="标题"> | 7 | <el-form-item label="标题"> |
| 8 | - <el-input v-model="query.title" placeholder="标题" /> | 8 | + <el-input v-model="query.title" placeholder="标题" /> |
| 9 | + </el-form-item> | ||
| 10 | + </el-col> | ||
| 11 | + <el-col :span="6"> | ||
| 12 | + <el-form-item label="是否默认"> | ||
| 13 | + <el-select v-model="query.detault" placeholder="是否默认" clearable> | ||
| 14 | + <el-option v-for="(item, index) in detaultOptions" :key="index" :label="item.fullName" | ||
| 15 | + :value="item.id" /> | ||
| 16 | + </el-select> | ||
| 9 | </el-form-item> | 17 | </el-form-item> |
| 10 | </el-col> | 18 | </el-col> |
| 11 | <el-col :span="6"> | 19 | <el-col :span="6"> |
| @@ -25,190 +33,241 @@ | @@ -25,190 +33,241 @@ | ||
| 25 | </div> | 33 | </div> |
| 26 | <div class="NCC-common-head-right"> | 34 | <div class="NCC-common-head-right"> |
| 27 | <el-tooltip effect="dark" content="刷新" placement="top"> | 35 | <el-tooltip effect="dark" content="刷新" placement="top"> |
| 28 | - <el-link icon="icon-ym icon-ym-Refresh NCC-common-head-icon" :underline="false" @click="reset()" /> | 36 | + <el-link icon="icon-ym icon-ym-Refresh NCC-common-head-icon" :underline="false" |
| 37 | + @click="reset()" /> | ||
| 29 | </el-tooltip> | 38 | </el-tooltip> |
| 30 | <screenfull isContainer /> | 39 | <screenfull isContainer /> |
| 31 | </div> | 40 | </div> |
| 32 | </div> | 41 | </div> |
| 33 | - <NCC-table v-loading="listLoading" :data="list" has-c @selection-change="handleSelectionChange"> | 42 | + <NCC-table v-loading="listLoading" :data="list" has-c @selection-change="handleSelectionChange"> |
| 34 | <el-table-column prop="title" label="标题" align="left" /> | 43 | <el-table-column prop="title" label="标题" align="left" /> |
| 35 | - <el-table-column prop="creatorTime" label="创建时间" align="left" :formatter="ncc.tableDateFormat"/> | ||
| 36 | - <el-table-column prop="lastModifyTime" label="修改时间" align="left" :formatter="ncc.tableDateFormat"/> | 44 | + <el-table-column label="是否默认" prop="detault" align="left"> |
| 45 | + <template slot-scope="scope">{{ scope.row.detault | dynamicText(detaultOptions) }}</template> | ||
| 46 | + </el-table-column> | ||
| 47 | + <el-table-column prop="creatorTime" label="创建时间" align="left" :formatter="ncc.tableDateFormat" /> | ||
| 48 | + <el-table-column prop="lastModifyTime" label="修改时间" align="left" :formatter="ncc.tableDateFormat" /> | ||
| 37 | <el-table-column label="操作" fixed="right" width="100"> | 49 | <el-table-column label="操作" fixed="right" width="100"> |
| 38 | - <template slot-scope="scope"> | ||
| 39 | - <el-button type="text" @click="addOrUpdateHandle(scope.row.id)" >编辑</el-button> | ||
| 40 | - <el-button type="text" @click="handleDel(scope.row.id)" class="NCC-table-delBtn" >删除</el-button> | 50 | + <template slot-scope="scope"> |
| 51 | + <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">编辑</el-button> | ||
| 52 | + <el-button type="text" @click="handleDel(scope.row.id)" class="NCC-table-delBtn">删除 | ||
| 53 | + </el-button> | ||
| 54 | + <el-button type="text" @click="Cofirm(scope.row.id)">设为置顶</el-button> | ||
| 41 | </template> | 55 | </template> |
| 42 | </el-table-column> | 56 | </el-table-column> |
| 43 | </NCC-table> | 57 | </NCC-table> |
| 44 | - <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData" /> | ||
| 45 | - </div> | ||
| 46 | - </div> | 58 | + <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" |
| 59 | + @pagination="initData" /> | ||
| 60 | + </div> | ||
| 61 | + </div> | ||
| 47 | <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" /> | 62 | <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" /> |
| 48 | <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" /> | 63 | <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" /> |
| 49 | </div> | 64 | </div> |
| 50 | </template> | 65 | </template> |
| 51 | <script> | 66 | <script> |
| 52 | - import request from '@/utils/request' | ||
| 53 | - import { getDictionaryDataSelector } from '@/api/systemData/dictionary' | ||
| 54 | - import NCCForm from './Form' | ||
| 55 | - import ExportBox from './ExportBox' | ||
| 56 | - import { previewDataInterface } from '@/api/systemData/dataInterface' | 67 | + import request from '@/utils/request' |
| 68 | + import { | ||
| 69 | + getDictionaryDataSelector | ||
| 70 | + } from '@/api/systemData/dictionary' | ||
| 71 | + import NCCForm from './Form' | ||
| 72 | + import ExportBox from './ExportBox' | ||
| 73 | + import { | ||
| 74 | + previewDataInterface | ||
| 75 | + } from '@/api/systemData/dataInterface' | ||
| 57 | export default { | 76 | export default { |
| 58 | - components: { NCCForm, ExportBox }, | ||
| 59 | - data() { | ||
| 60 | - return { | 77 | + components: { |
| 78 | + NCCForm, | ||
| 79 | + ExportBox | ||
| 80 | + }, | ||
| 81 | + data() { | ||
| 82 | + return { | ||
| 61 | query: { | 83 | query: { |
| 62 | - title:undefined, | 84 | + title: undefined, |
| 85 | + detault: undefined, | ||
| 63 | }, | 86 | }, |
| 64 | - list: [], | ||
| 65 | - listLoading: true, | ||
| 66 | - multipleSelection: [], total: 0, | ||
| 67 | - listQuery: { | ||
| 68 | - currentPage: 1, | ||
| 69 | - pageSize: 20, | 87 | + list: [], |
| 88 | + listLoading: true, | ||
| 89 | + multipleSelection: [], | ||
| 90 | + total: 0, | ||
| 91 | + listQuery: { | ||
| 92 | + currentPage: 1, | ||
| 93 | + pageSize: 20, | ||
| 70 | sort: "desc", | 94 | sort: "desc", |
| 71 | - sidx: "", | ||
| 72 | - }, | ||
| 73 | - formVisible: false, | ||
| 74 | - exportBoxVisible: false, | ||
| 75 | - columnList: [ | ||
| 76 | - { prop: 'title', label: '标题' }, | ||
| 77 | - { prop: 'creatorTime', label: '创建时间' }, | ||
| 78 | - { prop: 'lastModifyTime', label: '修改时间' }, | 95 | + sidx: "", |
| 96 | + }, | ||
| 97 | + formVisible: false, | ||
| 98 | + exportBoxVisible: false, | ||
| 99 | + detaultOptions: [{ | ||
| 100 | + "fullName": "默认", | ||
| 101 | + "id": "1" | ||
| 102 | + }, { | ||
| 103 | + "fullName": "普通", | ||
| 104 | + "id": "2" | ||
| 105 | + }], | ||
| 106 | + columnList: [{ | ||
| 107 | + prop: 'title', | ||
| 108 | + label: '标题' | ||
| 109 | + }, | ||
| 110 | + { | ||
| 111 | + prop: 'creatorTime', | ||
| 112 | + label: '创建时间' | ||
| 113 | + }, | ||
| 114 | + { | ||
| 115 | + prop: 'lastModifyTime', | ||
| 116 | + label: '修改时间' | ||
| 117 | + }, | ||
| 118 | + { | ||
| 119 | + prop: 'detault', | ||
| 120 | + label: '是否默认' | ||
| 121 | + }, | ||
| 79 | ], | 122 | ], |
| 80 | } | 123 | } |
| 81 | - }, | 124 | + }, |
| 82 | computed: {}, | 125 | computed: {}, |
| 83 | created() { | 126 | created() { |
| 84 | this.initData() | 127 | this.initData() |
| 85 | }, | 128 | }, |
| 86 | methods: { | 129 | methods: { |
| 130 | + Cofirm(id){ | ||
| 131 | + request({ | ||
| 132 | + url: `/api/Education/tbevaluation/ConfirmEvalDefault?id=`+id, | ||
| 133 | + method: 'POST', | ||
| 134 | + }).then(res => { | ||
| 135 | + if(res.code==200){ | ||
| 136 | + this.$message.success('设置成功') | ||
| 137 | + this.initData() | ||
| 138 | + }else{ | ||
| 139 | + this.$message.error('设置失败') | ||
| 140 | + } | ||
| 141 | + }) | ||
| 142 | + }, | ||
| 87 | initData() { | 143 | initData() { |
| 88 | - this.listLoading = true; | ||
| 89 | - let _query = { | ||
| 90 | - ...this.listQuery, | ||
| 91 | - ...this.query | ||
| 92 | - }; | ||
| 93 | - let query = {} | ||
| 94 | - for (let key in _query) { | ||
| 95 | - if (Array.isArray(_query[key])) { | ||
| 96 | - query[key] = _query[key].join() | ||
| 97 | - } else { | ||
| 98 | - query[key] = _query[key] | ||
| 99 | - } | ||
| 100 | - } | ||
| 101 | - request({ | ||
| 102 | - url: `/api/Education/TbEvaluation`, | ||
| 103 | - method: 'GET', | ||
| 104 | - data: query | ||
| 105 | - }).then(res => { | ||
| 106 | - this.list = res.data.list | ||
| 107 | - this.total = res.data.pagination.total | ||
| 108 | - this.listLoading = false | ||
| 109 | - }) | ||
| 110 | - }, | 144 | + this.listLoading = true; |
| 145 | + let _query = { | ||
| 146 | + ...this.listQuery, | ||
| 147 | + ...this.query | ||
| 148 | + }; | ||
| 149 | + let query = {} | ||
| 150 | + for (let key in _query) { | ||
| 151 | + if (Array.isArray(_query[key])) { | ||
| 152 | + query[key] = _query[key].join() | ||
| 153 | + } else { | ||
| 154 | + query[key] = _query[key] | ||
| 155 | + } | ||
| 156 | + } | ||
| 157 | + request({ | ||
| 158 | + url: `/api/Education/TbEvaluation`, | ||
| 159 | + method: 'GET', | ||
| 160 | + data: query | ||
| 161 | + }).then(res => { | ||
| 162 | + this.list = res.data.list | ||
| 163 | + this.total = res.data.pagination.total | ||
| 164 | + this.listLoading = false | ||
| 165 | + }) | ||
| 166 | + }, | ||
| 111 | handleDel(id) { | 167 | handleDel(id) { |
| 112 | - this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { | ||
| 113 | - type: 'warning' | ||
| 114 | - }).then(() => { | ||
| 115 | - request({ | ||
| 116 | - url: `/api/Education/TbEvaluation/${id}`, | ||
| 117 | - method: 'DELETE' | ||
| 118 | - }).then(res => { | ||
| 119 | - this.$message({ | ||
| 120 | - type: 'success', | ||
| 121 | - message: res.msg, | ||
| 122 | - onClose: () => { | ||
| 123 | - this.initData() | ||
| 124 | - } | ||
| 125 | - }); | ||
| 126 | - }) | ||
| 127 | - }).catch(() => { | ||
| 128 | - }); | ||
| 129 | - }, | 168 | + this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { |
| 169 | + type: 'warning' | ||
| 170 | + }).then(() => { | ||
| 171 | + request({ | ||
| 172 | + url: `/api/Education/TbEvaluation/${id}`, | ||
| 173 | + method: 'DELETE' | ||
| 174 | + }).then(res => { | ||
| 175 | + this.$message({ | ||
| 176 | + type: 'success', | ||
| 177 | + message: res.msg, | ||
| 178 | + onClose: () => { | ||
| 179 | + this.initData() | ||
| 180 | + } | ||
| 181 | + }); | ||
| 182 | + }) | ||
| 183 | + }).catch(() => {}); | ||
| 184 | + }, | ||
| 130 | handleSelectionChange(val) { | 185 | handleSelectionChange(val) { |
| 131 | - const res = val.map(item => item.id) | ||
| 132 | - this.multipleSelection = res | ||
| 133 | - }, | ||
| 134 | - handleBatchRemoveDel() { | ||
| 135 | - if (!this.multipleSelection.length) { | ||
| 136 | - this.$message({ | ||
| 137 | - type: 'error', | ||
| 138 | - message: '请选择一条数据', | ||
| 139 | - duration: 1500, | ||
| 140 | - }) | ||
| 141 | - return | ||
| 142 | - } | ||
| 143 | - const ids = this.multipleSelection | ||
| 144 | - this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { | ||
| 145 | - type: 'warning' | ||
| 146 | - }).then(() => { | ||
| 147 | - request({ | ||
| 148 | - url: `/api/Education/TbEvaluation/batchRemove`, | ||
| 149 | - method: 'POST', | ||
| 150 | - data: ids , | ||
| 151 | - }).then(res => { | ||
| 152 | - this.$message({ | ||
| 153 | - type: 'success', | ||
| 154 | - message: res.msg, | ||
| 155 | - onClose: () => { | ||
| 156 | - this.initData() | ||
| 157 | - } | ||
| 158 | - }); | ||
| 159 | - }) | ||
| 160 | - }).catch(() => { }) | ||
| 161 | - }, | 186 | + const res = val.map(item => item.id) |
| 187 | + this.multipleSelection = res | ||
| 188 | + }, | ||
| 189 | + handleBatchRemoveDel() { | ||
| 190 | + if (!this.multipleSelection.length) { | ||
| 191 | + this.$message({ | ||
| 192 | + type: 'error', | ||
| 193 | + message: '请选择一条数据', | ||
| 194 | + duration: 1500, | ||
| 195 | + }) | ||
| 196 | + return | ||
| 197 | + } | ||
| 198 | + const ids = this.multipleSelection | ||
| 199 | + this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { | ||
| 200 | + type: 'warning' | ||
| 201 | + }).then(() => { | ||
| 202 | + request({ | ||
| 203 | + url: `/api/Education/TbEvaluation/batchRemove`, | ||
| 204 | + method: 'POST', | ||
| 205 | + data: ids, | ||
| 206 | + }).then(res => { | ||
| 207 | + this.$message({ | ||
| 208 | + type: 'success', | ||
| 209 | + message: res.msg, | ||
| 210 | + onClose: () => { | ||
| 211 | + this.initData() | ||
| 212 | + } | ||
| 213 | + }); | ||
| 214 | + }) | ||
| 215 | + }).catch(() => {}) | ||
| 216 | + }, | ||
| 162 | addOrUpdateHandle(id, isDetail) { | 217 | addOrUpdateHandle(id, isDetail) { |
| 163 | - this.formVisible = true | ||
| 164 | - this.$nextTick(() => { | ||
| 165 | - this.$refs.NCCForm.init(id, isDetail) | ||
| 166 | - }) | ||
| 167 | - }, | 218 | + this.formVisible = true |
| 219 | + this.$nextTick(() => { | ||
| 220 | + this.$refs.NCCForm.init(id, isDetail) | ||
| 221 | + }) | ||
| 222 | + }, | ||
| 168 | exportData() { | 223 | exportData() { |
| 169 | - this.exportBoxVisible = true | ||
| 170 | - this.$nextTick(() => { | ||
| 171 | - this.$refs.ExportBox.init(this.columnList) | ||
| 172 | - }) | ||
| 173 | - }, | ||
| 174 | - download(data) { | ||
| 175 | - let query = { ...data, ...this.listQuery, ...this.query } | ||
| 176 | - request({ | ||
| 177 | - url: `/api/Education/TbEvaluation/Actions/Export`, | ||
| 178 | - method: 'GET', | ||
| 179 | - data: query | ||
| 180 | - }).then(res => { | ||
| 181 | - if (!res.data.url) return | ||
| 182 | - window.location.href = this.define.comUrl + res.data.url | ||
| 183 | - this.$refs.ExportBox.visible = false | ||
| 184 | - this.exportBoxVisible = false | ||
| 185 | - }) | ||
| 186 | - }, | 224 | + this.exportBoxVisible = true |
| 225 | + this.$nextTick(() => { | ||
| 226 | + this.$refs.ExportBox.init(this.columnList) | ||
| 227 | + }) | ||
| 228 | + }, | ||
| 229 | + download(data) { | ||
| 230 | + let query = { | ||
| 231 | + ...data, | ||
| 232 | + ...this.listQuery, | ||
| 233 | + ...this.query | ||
| 234 | + } | ||
| 235 | + request({ | ||
| 236 | + url: `/api/Education/TbEvaluation/Actions/Export`, | ||
| 237 | + method: 'GET', | ||
| 238 | + data: query | ||
| 239 | + }).then(res => { | ||
| 240 | + if (!res.data.url) return | ||
| 241 | + window.location.href = this.define.comUrl + res.data.url | ||
| 242 | + this.$refs.ExportBox.visible = false | ||
| 243 | + this.exportBoxVisible = false | ||
| 244 | + }) | ||
| 245 | + }, | ||
| 187 | search() { | 246 | search() { |
| 188 | - this.listQuery = { | ||
| 189 | - currentPage: 1, | ||
| 190 | - pageSize: 20, | ||
| 191 | - sort: "desc", | ||
| 192 | - sidx: "", | ||
| 193 | - } | ||
| 194 | - this.initData() | ||
| 195 | - }, | ||
| 196 | - refresh(isrRefresh) { | ||
| 197 | - this.formVisible = false | ||
| 198 | - if (isrRefresh) this.reset() | ||
| 199 | - }, | ||
| 200 | - reset() { | ||
| 201 | - for (let key in this.query) { | ||
| 202 | - this.query[key] = undefined | ||
| 203 | - } | ||
| 204 | - this.listQuery = { | ||
| 205 | - currentPage: 1, | ||
| 206 | - pageSize: 20, | ||
| 207 | - sort: "desc", | ||
| 208 | - sidx: "", | ||
| 209 | - } | ||
| 210 | - this.initData() | ||
| 211 | - } | 247 | + this.listQuery = { |
| 248 | + currentPage: 1, | ||
| 249 | + pageSize: 20, | ||
| 250 | + sort: "desc", | ||
| 251 | + sidx: "", | ||
| 252 | + } | ||
| 253 | + this.initData() | ||
| 254 | + }, | ||
| 255 | + refresh(isrRefresh) { | ||
| 256 | + this.formVisible = false | ||
| 257 | + if (isrRefresh) this.reset() | ||
| 258 | + }, | ||
| 259 | + reset() { | ||
| 260 | + for (let key in this.query) { | ||
| 261 | + this.query[key] = undefined | ||
| 262 | + } | ||
| 263 | + this.listQuery = { | ||
| 264 | + currentPage: 1, | ||
| 265 | + pageSize: 20, | ||
| 266 | + sort: "desc", | ||
| 267 | + sidx: "", | ||
| 268 | + } | ||
| 269 | + this.initData() | ||
| 270 | + } | ||
| 212 | } | 271 | } |
| 213 | - } | ||
| 214 | -</script> | ||
| 215 | \ No newline at end of file | 272 | \ No newline at end of file |
| 273 | + } | ||
| 274 | +</script> |
antis-ncc-admin/src/views/tbMemCode/index.vue
| @@ -37,6 +37,8 @@ | @@ -37,6 +37,8 @@ | ||
| 37 | <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">新增</el-button> | 37 | <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">新增</el-button> |
| 38 | <el-button type="text" icon="el-icon-download" @click="exportData()">导出</el-button> | 38 | <el-button type="text" icon="el-icon-download" @click="exportData()">导出</el-button> |
| 39 | <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">批量删除</el-button> | 39 | <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">批量删除</el-button> |
| 40 | + <el-button type="text" icon="el-icon-delete" @click="dialogVisibleCreate=true">批量生成</el-button> | ||
| 41 | + <el-button type="text" icon="el-icon-delete" @click="dialogVisibleUpdate=true">批量修改</el-button> | ||
| 40 | </div> | 42 | </div> |
| 41 | <div class="NCC-common-head-right"> | 43 | <div class="NCC-common-head-right"> |
| 42 | <el-tooltip effect="dark" content="刷新" placement="top"> | 44 | <el-tooltip effect="dark" content="刷新" placement="top"> |
| @@ -51,7 +53,7 @@ | @@ -51,7 +53,7 @@ | ||
| 51 | <el-table-column label="状态" prop="type" align="left"> | 53 | <el-table-column label="状态" prop="type" align="left"> |
| 52 | <template slot-scope="scope">{{ scope.row.type | dynamicText(typeOptions) }}</template> | 54 | <template slot-scope="scope">{{ scope.row.type | dynamicText(typeOptions) }}</template> |
| 53 | </el-table-column> | 55 | </el-table-column> |
| 54 | - <el-table-column prop="expire" label="到期时间截至" align="left" :formatter="ncc.tableDateFormat"/> | 56 | + <el-table-column prop="expire" label="到期时间截至" align="left" :formatter="ncc.tableDateFormat" /> |
| 55 | <el-table-column prop="creatorTime" label="创建时间" align="left" :formatter="ncc.tableDateFormat" /> | 57 | <el-table-column prop="creatorTime" label="创建时间" align="left" :formatter="ncc.tableDateFormat" /> |
| 56 | <el-table-column prop="lastModifyTime" label="修改时间" align="left" :formatter="ncc.tableDateFormat" /> | 58 | <el-table-column prop="lastModifyTime" label="修改时间" align="left" :formatter="ncc.tableDateFormat" /> |
| 57 | <el-table-column label="操作" fixed="right" width="100"> | 59 | <el-table-column label="操作" fixed="right" width="100"> |
| @@ -68,6 +70,33 @@ | @@ -68,6 +70,33 @@ | ||
| 68 | </div> | 70 | </div> |
| 69 | <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" /> | 71 | <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" /> |
| 70 | <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" /> | 72 | <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" /> |
| 73 | + <el-dialog title="批量生成" :visible.sync="dialogVisibleCreate" width="30%"> | ||
| 74 | + <el-form ref="CreateCodeModel" :model="CreateCodeModel" label-width="80px"> | ||
| 75 | + <el-form-item label="数量"> | ||
| 76 | + <el-input-number v-model="CreateCodeModel.numbers" :min="1" :max="10" label="数量"></el-input-number> | ||
| 77 | + </el-form-item> | ||
| 78 | + <el-form-item label="到期日期"> | ||
| 79 | + <el-date-picker v-model="CreateCodeModel.expire" type="date" placeholder="选择日期"> | ||
| 80 | + </el-date-picker> | ||
| 81 | + </el-form-item> | ||
| 82 | + </el-form> | ||
| 83 | + <span slot="footer" class="dialog-footer"> | ||
| 84 | + <el-button @click="dialogVisibleCreate = false">取 消</el-button> | ||
| 85 | + <el-button type="primary" @click="SubmitCreate">确 定</el-button> | ||
| 86 | + </span> | ||
| 87 | + </el-dialog> | ||
| 88 | + <el-dialog title="批量修改" :visible.sync="dialogVisibleUpdate" width="30%"> | ||
| 89 | + <el-form ref="UpdateCodeModel" :model="UpdateCodeModel" label-width="80px"> | ||
| 90 | + <el-form-item label="到期日期"> | ||
| 91 | + <el-date-picker v-model="UpdateCodeModel.expire" type="date" placeholder="选择日期"> | ||
| 92 | + </el-date-picker> | ||
| 93 | + </el-form-item> | ||
| 94 | + </el-form> | ||
| 95 | + <span slot="footer" class="dialog-footer"> | ||
| 96 | + <el-button @click="dialogVisibleUpdate = false">取 消</el-button> | ||
| 97 | + <el-button type="primary" @click="SubmitUpdate">确 定</el-button> | ||
| 98 | + </span> | ||
| 99 | + </el-dialog> | ||
| 71 | </div> | 100 | </div> |
| 72 | </template> | 101 | </template> |
| 73 | <script> | 102 | <script> |
| @@ -87,6 +116,8 @@ | @@ -87,6 +116,8 @@ | ||
| 87 | }, | 116 | }, |
| 88 | data() { | 117 | data() { |
| 89 | return { | 118 | return { |
| 119 | + dialogVisibleCreate: false, | ||
| 120 | + dialogVisibleUpdate: false, | ||
| 90 | query: { | 121 | query: { |
| 91 | code: undefined, | 122 | code: undefined, |
| 92 | type: undefined, | 123 | type: undefined, |
| @@ -134,6 +165,15 @@ | @@ -134,6 +165,15 @@ | ||
| 134 | "fullName": "未使用", | 165 | "fullName": "未使用", |
| 135 | "id": "2" | 166 | "id": "2" |
| 136 | }], | 167 | }], |
| 168 | + CreateCodeModel: { | ||
| 169 | + "numbers": 1, | ||
| 170 | + "expire": undefined | ||
| 171 | + }, | ||
| 172 | + IDS:[], | ||
| 173 | + UpdateCodeModel: { | ||
| 174 | + "ids": "", | ||
| 175 | + "expire": undefined | ||
| 176 | + } | ||
| 137 | } | 177 | } |
| 138 | }, | 178 | }, |
| 139 | computed: {}, | 179 | computed: {}, |
| @@ -141,6 +181,51 @@ | @@ -141,6 +181,51 @@ | ||
| 141 | this.initData() | 181 | this.initData() |
| 142 | }, | 182 | }, |
| 143 | methods: { | 183 | methods: { |
| 184 | + SubmitCreate() { | ||
| 185 | + if(this.CreateCodeModel.expire){ | ||
| 186 | + this.$message.error('请填写截至日期时间') | ||
| 187 | + return | ||
| 188 | + } | ||
| 189 | + request({ | ||
| 190 | + url: `/api/Education/tbmemcode/MutinueCreateCode`, | ||
| 191 | + method: 'POST', | ||
| 192 | + data: this.CreateCodeModel | ||
| 193 | + }).then(res => { | ||
| 194 | + if(res.code==200){ | ||
| 195 | + this.$message.success('操作成功') | ||
| 196 | + this.initData() | ||
| 197 | + this.dialogVisibleCreate=false | ||
| 198 | + }else{ | ||
| 199 | + this.$message.error('操作失败') | ||
| 200 | + } | ||
| 201 | + }) | ||
| 202 | + }, | ||
| 203 | + SubmitUpdate(){ | ||
| 204 | + this.UpdateCodeModel.ids=this.IDS.toString() | ||
| 205 | + this.UpdateCodeModel.expire=this.ncc.dateFormat(this.UpdateCodeModel.expire,'YYYY-MM-DD') | ||
| 206 | + console.log('这是最终参数',this.UpdateCodeModel) | ||
| 207 | + if(this.IDS.length==0){ | ||
| 208 | + this.$message.error('请选择会员码') | ||
| 209 | + return | ||
| 210 | + } | ||
| 211 | + if(this.UpdateCodeModel.expire==undefined){ | ||
| 212 | + this.$message.error('请选择会员码') | ||
| 213 | + return | ||
| 214 | + } | ||
| 215 | + request({ | ||
| 216 | + url: `/api/Education/tbmemcode/MutinueUpdateDaysNumber`, | ||
| 217 | + method: 'POST', | ||
| 218 | + data: this.UpdateCodeModel | ||
| 219 | + }).then(res => { | ||
| 220 | + if(res.code==200){ | ||
| 221 | + this.$message.success('操作成功') | ||
| 222 | + this.initData() | ||
| 223 | + this.dialogVisibleUpdate=false | ||
| 224 | + }else{ | ||
| 225 | + this.$message.error('操作失败') | ||
| 226 | + } | ||
| 227 | + }) | ||
| 228 | + }, | ||
| 144 | initData() { | 229 | initData() { |
| 145 | this.listLoading = true; | 230 | this.listLoading = true; |
| 146 | let _query = { | 231 | let _query = { |
| @@ -185,6 +270,12 @@ | @@ -185,6 +270,12 @@ | ||
| 185 | }, | 270 | }, |
| 186 | handleSelectionChange(val) { | 271 | handleSelectionChange(val) { |
| 187 | const res = val.map(item => item.id) | 272 | const res = val.map(item => item.id) |
| 273 | + this.IDS=[] | ||
| 274 | + val.forEach((item,index)=>{ | ||
| 275 | + this.IDS.push(item.id) | ||
| 276 | + }) | ||
| 277 | + console.log('这是赋值的信息',this.IDS) | ||
| 278 | + console.log('这是选择的西悉尼',val) | ||
| 188 | this.multipleSelection = res | 279 | this.multipleSelection = res |
| 189 | }, | 280 | }, |
| 190 | handleBatchRemoveDel() { | 281 | handleBatchRemoveDel() { |
antis-ncc-admin/src/views/tbPunch/index.vue
| @@ -130,7 +130,7 @@ | @@ -130,7 +130,7 @@ | ||
| 130 | { prop: 'lastModifyTime', label: '修改时间' }, | 130 | { prop: 'lastModifyTime', label: '修改时间' }, |
| 131 | { prop: 'type', label: '状态' }, | 131 | { prop: 'type', label: '状态' }, |
| 132 | ], | 132 | ], |
| 133 | - typeOptions:[{"fullName":"已打卡","id":"1"},{"fullName":"缺卡","id":"2"}], | 133 | + typeOptions:[{"fullName":"已打卡","id":"1"},{"fullName":"缺打卡","id":"2"}], |
| 134 | } | 134 | } |
| 135 | }, | 135 | }, |
| 136 | computed: {}, | 136 | computed: {}, |
antis-ncc-admin/src/views/tbQuestion/Form.vue
| 1 | <template> | 1 | <template> |
| 2 | - <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" :visible.sync="visible" class="NCC-dialog NCC-dialog_center" lock-scroll width="600px"> | ||
| 3 | - <el-row :gutter="15" class="" > | ||
| 4 | - <el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" :disabled="!!isDetail" :rules="rules"> | ||
| 5 | - <el-col :span="24"> | ||
| 6 | - <el-form-item label="标题" prop="title"> | ||
| 7 | - <el-input v-model="dataForm.title" placeholder="请输入" required show-word-limit :style='{"width":"100%"}' type='textarea' :autosize='{"minRows":4,"maxRows":4}' maxlength="200" > | ||
| 8 | - </el-input> | ||
| 9 | - </el-form-item> | ||
| 10 | - </el-col> | ||
| 11 | - <el-col :span="24"> | ||
| 12 | - <el-form-item label="图片信息" prop="img"> | ||
| 13 | - <NCC-UploadImg v-model="dataForm.img" required :fileSize="5" sizeUnit="MB" :limit="1" > | ||
| 14 | - </NCC-UploadImg> | ||
| 15 | - </el-form-item> | ||
| 16 | - </el-col> | ||
| 17 | - <el-col :span="24"> | ||
| 18 | - <el-form-item label="图文信息" prop="editors"> | ||
| 19 | - <NCC-Quill v-model="dataForm.editors" placeholder="请输入内容..." required > | ||
| 20 | - </NCC-Quill> | ||
| 21 | - </el-form-item> | ||
| 22 | - </el-col> | ||
| 23 | - <el-col :span="24" v-if="false" > | ||
| 24 | - <el-form-item label="创建时间" prop="creatorTime"> | ||
| 25 | - <el-input v-model="dataForm.creatorTime" placeholder="系统自动生成" readonly > | ||
| 26 | - </el-input> | ||
| 27 | - </el-form-item> | ||
| 28 | - </el-col> | ||
| 29 | - <el-col :span="24" v-if="false" > | ||
| 30 | - <el-form-item label="修改时间" prop="lastModifyTime"> | ||
| 31 | - <el-input v-model="dataForm.lastModifyTime" placeholder="系统自动生成" readonly > | ||
| 32 | - </el-input> | ||
| 33 | - </el-form-item> | ||
| 34 | - </el-col> | ||
| 35 | - </el-form> | 2 | + <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" |
| 3 | + :visible.sync="visible" class="NCC-dialog NCC-dialog_center" lock-scroll width="600px"> | ||
| 4 | + <el-row :gutter="15" class=""> | ||
| 5 | + <el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" | ||
| 6 | + :disabled="!!isDetail" :rules="rules"> | ||
| 7 | + <el-col :span="24"> | ||
| 8 | + <el-form-item label="标题" prop="title"> | ||
| 9 | + <el-input v-model="dataForm.title" placeholder="请输入" required show-word-limit | ||
| 10 | + :style='{"width":"100%"}' type='textarea' :autosize='{"minRows":4,"maxRows":4}' | ||
| 11 | + maxlength="200"> | ||
| 12 | + </el-input> | ||
| 13 | + </el-form-item> | ||
| 14 | + </el-col> | ||
| 15 | + <el-col :span="24"> | ||
| 16 | + <el-form-item label="图片信息" prop="img"> | ||
| 17 | + <NCC-UploadImg v-model="dataForm.img" required :fileSize="5" sizeUnit="MB" :limit="1"> | ||
| 18 | + </NCC-UploadImg> | ||
| 19 | + </el-form-item> | ||
| 20 | + </el-col> | ||
| 21 | + <el-col :span="24"> | ||
| 22 | + <el-form-item label="是否默认" prop="detault"> | ||
| 23 | + <el-select v-model="dataForm.detault" placeholder="请选择" clearable required | ||
| 24 | + :style='{"width":"100%"}'> | ||
| 25 | + <el-option v-for="(item, index) in detaultOptions" :key="index" :label="item.fullName" | ||
| 26 | + :value="item.id"></el-option> | ||
| 27 | + </el-select> | ||
| 28 | + </el-form-item> | ||
| 29 | + </el-col> | ||
| 30 | + <el-col :span="24"> | ||
| 31 | + <el-form-item label="图文信息" prop="editors"> | ||
| 32 | + <NCC-Quill v-model="dataForm.editors" placeholder="请输入内容..." required> | ||
| 33 | + </NCC-Quill> | ||
| 34 | + </el-form-item> | ||
| 35 | + </el-col> | ||
| 36 | + <el-col :span="24" v-if="false"> | ||
| 37 | + <el-form-item label="创建时间" prop="creatorTime"> | ||
| 38 | + <el-input v-model="dataForm.creatorTime" placeholder="系统自动生成" readonly> | ||
| 39 | + </el-input> | ||
| 40 | + </el-form-item> | ||
| 41 | + </el-col> | ||
| 42 | + <el-col :span="24" v-if="false"> | ||
| 43 | + <el-form-item label="修改时间" prop="lastModifyTime"> | ||
| 44 | + <el-input v-model="dataForm.lastModifyTime" placeholder="系统自动生成" readonly> | ||
| 45 | + </el-input> | ||
| 46 | + </el-form-item> | ||
| 47 | + </el-col> | ||
| 48 | + </el-form> | ||
| 36 | </el-row> | 49 | </el-row> |
| 37 | <span slot="footer" class="dialog-footer"> | 50 | <span slot="footer" class="dialog-footer"> |
| 38 | <el-button @click="visible = false">取 消</el-button> | 51 | <el-button @click="visible = false">取 消</el-button> |
| @@ -42,8 +55,12 @@ | @@ -42,8 +55,12 @@ | ||
| 42 | </template> | 55 | </template> |
| 43 | <script> | 56 | <script> |
| 44 | import request from '@/utils/request' | 57 | import request from '@/utils/request' |
| 45 | - import { getDictionaryDataSelector } from '@/api/systemData/dictionary' | ||
| 46 | - import { previewDataInterface } from '@/api/systemData/dataInterface' | 58 | + import { |
| 59 | + getDictionaryDataSelector | ||
| 60 | + } from '@/api/systemData/dictionary' | ||
| 61 | + import { | ||
| 62 | + previewDataInterface | ||
| 63 | + } from '@/api/systemData/dataInterface' | ||
| 47 | export default { | 64 | export default { |
| 48 | components: {}, | 65 | components: {}, |
| 49 | props: [], | 66 | props: [], |
| @@ -53,103 +70,110 @@ | @@ -53,103 +70,110 @@ | ||
| 53 | visible: false, | 70 | visible: false, |
| 54 | isDetail: false, | 71 | isDetail: false, |
| 55 | dataForm: { | 72 | dataForm: { |
| 56 | - id:'', | ||
| 57 | - title:undefined, | ||
| 58 | - img:[], | ||
| 59 | - editors:undefined, | ||
| 60 | - creatorTime:undefined, | ||
| 61 | - lastModifyTime:undefined, | 73 | + id: '', |
| 74 | + title: undefined, | ||
| 75 | + img: [], | ||
| 76 | + detault: undefined, | ||
| 77 | + | ||
| 78 | + editors: undefined, | ||
| 79 | + creatorTime: undefined, | ||
| 80 | + lastModifyTime: undefined, | ||
| 62 | }, | 81 | }, |
| 82 | + detaultOptions: [{ | ||
| 83 | + "fullName": "默认", | ||
| 84 | + "id": "1" | ||
| 85 | + }, { | ||
| 86 | + "fullName": "普通", | ||
| 87 | + "id": "2" | ||
| 88 | + }], | ||
| 89 | + | ||
| 63 | rules: { | 90 | rules: { |
| 64 | - title:[ | ||
| 65 | - { | ||
| 66 | - required:true, | ||
| 67 | - message:'请输入标题', | ||
| 68 | - trigger:'blur' | ||
| 69 | - }, | ||
| 70 | - ], | ||
| 71 | - img:[ | ||
| 72 | - { | ||
| 73 | - required:true, | ||
| 74 | - message:'请输入图片信息', | ||
| 75 | - trigger:'click' | ||
| 76 | - }, | ||
| 77 | - ], | ||
| 78 | - editors:[ | ||
| 79 | - { | ||
| 80 | - required:true, | ||
| 81 | - message:'请输入图文信息', | ||
| 82 | - trigger:'blur' | ||
| 83 | - }, | ||
| 84 | - ], | 91 | + title: [{ |
| 92 | + required: true, | ||
| 93 | + message: '请输入标题', | ||
| 94 | + trigger: 'blur' | ||
| 95 | + }, ], | ||
| 96 | + img: [{ | ||
| 97 | + required: true, | ||
| 98 | + message: '请输入图片信息', | ||
| 99 | + trigger: 'click' | ||
| 100 | + }, ], | ||
| 101 | + editors: [{ | ||
| 102 | + required: true, | ||
| 103 | + message: '请输入图文信息', | ||
| 104 | + trigger: 'blur' | ||
| 105 | + }, ], | ||
| 106 | + detault: [{ | ||
| 107 | + required: true, | ||
| 108 | + message: '请输入是否默认', | ||
| 109 | + trigger: 'change' | ||
| 110 | + }, ], | ||
| 85 | }, | 111 | }, |
| 86 | } | 112 | } |
| 87 | }, | 113 | }, |
| 88 | computed: {}, | 114 | computed: {}, |
| 89 | - watch: {}, | ||
| 90 | - created() { | ||
| 91 | - }, | ||
| 92 | - mounted() { | ||
| 93 | - }, | 115 | + watch: {}, |
| 116 | + created() {}, | ||
| 117 | + mounted() {}, | ||
| 94 | methods: { | 118 | methods: { |
| 95 | goBack() { | 119 | goBack() { |
| 96 | - this.$emit('refresh') | ||
| 97 | - }, | 120 | + this.$emit('refresh') |
| 121 | + }, | ||
| 98 | init(id, isDetail) { | 122 | init(id, isDetail) { |
| 99 | this.dataForm.id = id || 0; | 123 | this.dataForm.id = id || 0; |
| 100 | - this.visible = true; | ||
| 101 | - this.isDetail = isDetail || false; | 124 | + this.visible = true; |
| 125 | + this.isDetail = isDetail || false; | ||
| 102 | this.$nextTick(() => { | 126 | this.$nextTick(() => { |
| 103 | this.$refs['elForm'].resetFields(); | 127 | this.$refs['elForm'].resetFields(); |
| 104 | if (this.dataForm.id) { | 128 | if (this.dataForm.id) { |
| 105 | request({ | 129 | request({ |
| 106 | url: '/api/Education/TbQuestion/' + this.dataForm.id, | 130 | url: '/api/Education/TbQuestion/' + this.dataForm.id, |
| 107 | method: 'get' | 131 | method: 'get' |
| 108 | - }).then(res =>{ | 132 | + }).then(res => { |
| 109 | this.dataForm = res.data; | 133 | this.dataForm = res.data; |
| 110 | - if(!this.dataForm.img)this.dataForm.img=[]; | 134 | + if (!this.dataForm.img) this.dataForm.img = []; |
| 111 | }) | 135 | }) |
| 112 | } | 136 | } |
| 113 | }) | 137 | }) |
| 114 | }, | 138 | }, |
| 115 | dataFormSubmit() { | 139 | dataFormSubmit() { |
| 116 | this.$refs['elForm'].validate((valid) => { | 140 | this.$refs['elForm'].validate((valid) => { |
| 117 | - if (valid) { | ||
| 118 | - if (!this.dataForm.id) { | ||
| 119 | - request({ | ||
| 120 | - url: `/api/Education/TbQuestion`, | ||
| 121 | - method: 'post', | ||
| 122 | - data: this.dataForm, | ||
| 123 | - }).then((res) => { | ||
| 124 | - this.$message({ | ||
| 125 | - message: res.msg, | ||
| 126 | - type: 'success', | ||
| 127 | - duration: 1000, | ||
| 128 | - onClose: () => { | ||
| 129 | - this.visible = false, | ||
| 130 | - this.$emit('refresh', true) | ||
| 131 | - } | ||
| 132 | - }) | ||
| 133 | - }) | ||
| 134 | - } else { | ||
| 135 | - request({ | ||
| 136 | - url: '/api/Education/TbQuestion/' + this.dataForm.id, | ||
| 137 | - method: 'PUT', | ||
| 138 | - data: this.dataForm | ||
| 139 | - }).then((res) => { | ||
| 140 | - this.$message({ | ||
| 141 | - message: res.msg, | ||
| 142 | - type: 'success', | ||
| 143 | - duration: 1000, | ||
| 144 | - onClose: () => { | ||
| 145 | - this.visible = false | ||
| 146 | - this.$emit('refresh', true) | ||
| 147 | - } | ||
| 148 | - }) | ||
| 149 | - }) | ||
| 150 | - } | ||
| 151 | - } | ||
| 152 | - }) | 141 | + if (valid) { |
| 142 | + if (!this.dataForm.id) { | ||
| 143 | + request({ | ||
| 144 | + url: `/api/Education/TbQuestion`, | ||
| 145 | + method: 'post', | ||
| 146 | + data: this.dataForm, | ||
| 147 | + }).then((res) => { | ||
| 148 | + this.$message({ | ||
| 149 | + message: res.msg, | ||
| 150 | + type: 'success', | ||
| 151 | + duration: 1000, | ||
| 152 | + onClose: () => { | ||
| 153 | + this.visible = false, | ||
| 154 | + this.$emit('refresh', true) | ||
| 155 | + } | ||
| 156 | + }) | ||
| 157 | + }) | ||
| 158 | + } else { | ||
| 159 | + request({ | ||
| 160 | + url: '/api/Education/TbQuestion/' + this.dataForm.id, | ||
| 161 | + method: 'PUT', | ||
| 162 | + data: this.dataForm | ||
| 163 | + }).then((res) => { | ||
| 164 | + this.$message({ | ||
| 165 | + message: res.msg, | ||
| 166 | + type: 'success', | ||
| 167 | + duration: 1000, | ||
| 168 | + onClose: () => { | ||
| 169 | + this.visible = false | ||
| 170 | + this.$emit('refresh', true) | ||
| 171 | + } | ||
| 172 | + }) | ||
| 173 | + }) | ||
| 174 | + } | ||
| 175 | + } | ||
| 176 | + }) | ||
| 153 | }, | 177 | }, |
| 154 | } | 178 | } |
| 155 | } | 179 | } |
antis-ncc-admin/src/views/tbQuestion/index.vue
| 1 | -<template> | 1 | +<template> |
| 2 | <div class="NCC-common-layout"> | 2 | <div class="NCC-common-layout"> |
| 3 | <div class="NCC-common-layout-center"> | 3 | <div class="NCC-common-layout-center"> |
| 4 | <el-row class="NCC-common-search-box" :gutter="16"> | 4 | <el-row class="NCC-common-search-box" :gutter="16"> |
| 5 | <el-form @submit.native.prevent> | 5 | <el-form @submit.native.prevent> |
| 6 | <el-col :span="6"> | 6 | <el-col :span="6"> |
| 7 | <el-form-item label="标题"> | 7 | <el-form-item label="标题"> |
| 8 | - <el-input v-model="query.title" placeholder="标题" /> | 8 | + <el-input v-model="query.title" placeholder="标题" /> |
| 9 | + </el-form-item> | ||
| 10 | + </el-col> | ||
| 11 | + <el-col :span="6"> | ||
| 12 | + <el-form-item label="是否默认"> | ||
| 13 | + <el-select v-model="query.detault" placeholder="是否默认" clearable> | ||
| 14 | + <el-option v-for="(item, index) in detaultOptions" :key="index" :label="item.fullName" | ||
| 15 | + :value="item.id" /> | ||
| 16 | + </el-select> | ||
| 9 | </el-form-item> | 17 | </el-form-item> |
| 10 | </el-col> | 18 | </el-col> |
| 11 | <el-col :span="6"> | 19 | <el-col :span="6"> |
| @@ -25,190 +33,244 @@ | @@ -25,190 +33,244 @@ | ||
| 25 | </div> | 33 | </div> |
| 26 | <div class="NCC-common-head-right"> | 34 | <div class="NCC-common-head-right"> |
| 27 | <el-tooltip effect="dark" content="刷新" placement="top"> | 35 | <el-tooltip effect="dark" content="刷新" placement="top"> |
| 28 | - <el-link icon="icon-ym icon-ym-Refresh NCC-common-head-icon" :underline="false" @click="reset()" /> | 36 | + <el-link icon="icon-ym icon-ym-Refresh NCC-common-head-icon" :underline="false" |
| 37 | + @click="reset()" /> | ||
| 29 | </el-tooltip> | 38 | </el-tooltip> |
| 30 | <screenfull isContainer /> | 39 | <screenfull isContainer /> |
| 31 | </div> | 40 | </div> |
| 32 | </div> | 41 | </div> |
| 33 | - <NCC-table v-loading="listLoading" :data="list" has-c @selection-change="handleSelectionChange"> | 42 | + <NCC-table v-loading="listLoading" :data="list" has-c @selection-change="handleSelectionChange"> |
| 34 | <el-table-column prop="title" label="标题" align="left" /> | 43 | <el-table-column prop="title" label="标题" align="left" /> |
| 35 | - <el-table-column prop="creatorTime" label="创建时间" align="left" :formatter="ncc.tableDateFormat"/> | ||
| 36 | - <el-table-column prop="lastModifyTime" label="修改时间" align="left" :formatter="ncc.tableDateFormat"/> | 44 | + <el-table-column label="是否默认" prop="detault" align="left"> |
| 45 | + <template slot-scope="scope">{{ scope.row.detault | dynamicText(detaultOptions) }}</template> | ||
| 46 | + </el-table-column> | ||
| 47 | + <el-table-column prop="creatorTime" label="创建时间" align="left" :formatter="ncc.tableDateFormat" /> | ||
| 48 | + <el-table-column prop="lastModifyTime" label="修改时间" align="left" :formatter="ncc.tableDateFormat" /> | ||
| 37 | <el-table-column label="操作" fixed="right" width="100"> | 49 | <el-table-column label="操作" fixed="right" width="100"> |
| 38 | - <template slot-scope="scope"> | ||
| 39 | - <el-button type="text" @click="addOrUpdateHandle(scope.row.id)" >编辑</el-button> | ||
| 40 | - <el-button type="text" @click="handleDel(scope.row.id)" class="NCC-table-delBtn" >删除</el-button> | 50 | + <template slot-scope="scope"> |
| 51 | + <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">编辑</el-button> | ||
| 52 | + <el-button type="text" @click="handleDel(scope.row.id)" class="NCC-table-delBtn">删除 | ||
| 53 | + </el-button> | ||
| 54 | + <el-button type="text" @click="Cofirm(scope.row.id)">设为置顶</el-button> | ||
| 41 | </template> | 55 | </template> |
| 42 | </el-table-column> | 56 | </el-table-column> |
| 43 | </NCC-table> | 57 | </NCC-table> |
| 44 | - <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData" /> | ||
| 45 | - </div> | ||
| 46 | - </div> | 58 | + <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" |
| 59 | + @pagination="initData" /> | ||
| 60 | + </div> | ||
| 61 | + </div> | ||
| 47 | <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" /> | 62 | <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" /> |
| 48 | <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" /> | 63 | <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" /> |
| 49 | </div> | 64 | </div> |
| 50 | </template> | 65 | </template> |
| 51 | <script> | 66 | <script> |
| 52 | - import request from '@/utils/request' | ||
| 53 | - import { getDictionaryDataSelector } from '@/api/systemData/dictionary' | ||
| 54 | - import NCCForm from './Form' | ||
| 55 | - import ExportBox from './ExportBox' | ||
| 56 | - import { previewDataInterface } from '@/api/systemData/dataInterface' | 67 | + import request from '@/utils/request' |
| 68 | + import { | ||
| 69 | + getDictionaryDataSelector | ||
| 70 | + } from '@/api/systemData/dictionary' | ||
| 71 | + import NCCForm from './Form' | ||
| 72 | + import ExportBox from './ExportBox' | ||
| 73 | + import { | ||
| 74 | + previewDataInterface | ||
| 75 | + } from '@/api/systemData/dataInterface' | ||
| 57 | export default { | 76 | export default { |
| 58 | - components: { NCCForm, ExportBox }, | ||
| 59 | - data() { | ||
| 60 | - return { | 77 | + components: { |
| 78 | + NCCForm, | ||
| 79 | + ExportBox | ||
| 80 | + }, | ||
| 81 | + data() { | ||
| 82 | + return { | ||
| 61 | query: { | 83 | query: { |
| 62 | - title:undefined, | 84 | + title: undefined, |
| 85 | + detault: undefined, | ||
| 86 | + | ||
| 63 | }, | 87 | }, |
| 64 | - list: [], | ||
| 65 | - listLoading: true, | ||
| 66 | - multipleSelection: [], total: 0, | ||
| 67 | - listQuery: { | ||
| 68 | - currentPage: 1, | ||
| 69 | - pageSize: 20, | 88 | + list: [], |
| 89 | + listLoading: true, | ||
| 90 | + multipleSelection: [], | ||
| 91 | + total: 0, | ||
| 92 | + listQuery: { | ||
| 93 | + currentPage: 1, | ||
| 94 | + pageSize: 20, | ||
| 70 | sort: "desc", | 95 | sort: "desc", |
| 71 | - sidx: "", | ||
| 72 | - }, | ||
| 73 | - formVisible: false, | ||
| 74 | - exportBoxVisible: false, | ||
| 75 | - columnList: [ | ||
| 76 | - { prop: 'title', label: '标题' }, | ||
| 77 | - { prop: 'creatorTime', label: '创建时间' }, | ||
| 78 | - { prop: 'lastModifyTime', label: '修改时间' }, | 96 | + sidx: "", |
| 97 | + }, | ||
| 98 | + formVisible: false, | ||
| 99 | + exportBoxVisible: false, | ||
| 100 | + detaultOptions: [{ | ||
| 101 | + "fullName": "默认", | ||
| 102 | + "id": "1" | ||
| 103 | + }, { | ||
| 104 | + "fullName": "普通", | ||
| 105 | + "id": "2" | ||
| 106 | + }], | ||
| 107 | + | ||
| 108 | + columnList: [{ | ||
| 109 | + prop: 'title', | ||
| 110 | + label: '标题' | ||
| 111 | + }, | ||
| 112 | + { | ||
| 113 | + prop: 'creatorTime', | ||
| 114 | + label: '创建时间' | ||
| 115 | + }, | ||
| 116 | + { | ||
| 117 | + prop: 'lastModifyTime', | ||
| 118 | + label: '修改时间' | ||
| 119 | + }, | ||
| 120 | + { | ||
| 121 | + prop: 'detault', | ||
| 122 | + label: '是否默认' | ||
| 123 | + }, | ||
| 124 | + | ||
| 79 | ], | 125 | ], |
| 80 | } | 126 | } |
| 81 | - }, | 127 | + }, |
| 82 | computed: {}, | 128 | computed: {}, |
| 83 | created() { | 129 | created() { |
| 84 | this.initData() | 130 | this.initData() |
| 85 | }, | 131 | }, |
| 86 | methods: { | 132 | methods: { |
| 133 | + Cofirm(id){ | ||
| 134 | + request({ | ||
| 135 | + url: `/api/Education/tbquestion/ConfirmDefault?id=`+id, | ||
| 136 | + method: 'POST', | ||
| 137 | + }).then(res => { | ||
| 138 | + if(res.code==200){ | ||
| 139 | + this.$message.success('设置成功') | ||
| 140 | + this.initData() | ||
| 141 | + }else{ | ||
| 142 | + this.$message.error('设置失败') | ||
| 143 | + } | ||
| 144 | + }) | ||
| 145 | + }, | ||
| 87 | initData() { | 146 | initData() { |
| 88 | - this.listLoading = true; | ||
| 89 | - let _query = { | ||
| 90 | - ...this.listQuery, | ||
| 91 | - ...this.query | ||
| 92 | - }; | ||
| 93 | - let query = {} | ||
| 94 | - for (let key in _query) { | ||
| 95 | - if (Array.isArray(_query[key])) { | ||
| 96 | - query[key] = _query[key].join() | ||
| 97 | - } else { | ||
| 98 | - query[key] = _query[key] | ||
| 99 | - } | ||
| 100 | - } | ||
| 101 | - request({ | ||
| 102 | - url: `/api/Education/TbQuestion`, | ||
| 103 | - method: 'GET', | ||
| 104 | - data: query | ||
| 105 | - }).then(res => { | ||
| 106 | - this.list = res.data.list | ||
| 107 | - this.total = res.data.pagination.total | ||
| 108 | - this.listLoading = false | ||
| 109 | - }) | ||
| 110 | - }, | 147 | + this.listLoading = true; |
| 148 | + let _query = { | ||
| 149 | + ...this.listQuery, | ||
| 150 | + ...this.query | ||
| 151 | + }; | ||
| 152 | + let query = {} | ||
| 153 | + for (let key in _query) { | ||
| 154 | + if (Array.isArray(_query[key])) { | ||
| 155 | + query[key] = _query[key].join() | ||
| 156 | + } else { | ||
| 157 | + query[key] = _query[key] | ||
| 158 | + } | ||
| 159 | + } | ||
| 160 | + request({ | ||
| 161 | + url: `/api/Education/TbQuestion`, | ||
| 162 | + method: 'GET', | ||
| 163 | + data: query | ||
| 164 | + }).then(res => { | ||
| 165 | + this.list = res.data.list | ||
| 166 | + this.total = res.data.pagination.total | ||
| 167 | + this.listLoading = false | ||
| 168 | + }) | ||
| 169 | + }, | ||
| 111 | handleDel(id) { | 170 | handleDel(id) { |
| 112 | - this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { | ||
| 113 | - type: 'warning' | ||
| 114 | - }).then(() => { | ||
| 115 | - request({ | ||
| 116 | - url: `/api/Education/TbQuestion/${id}`, | ||
| 117 | - method: 'DELETE' | ||
| 118 | - }).then(res => { | ||
| 119 | - this.$message({ | ||
| 120 | - type: 'success', | ||
| 121 | - message: res.msg, | ||
| 122 | - onClose: () => { | ||
| 123 | - this.initData() | ||
| 124 | - } | ||
| 125 | - }); | ||
| 126 | - }) | ||
| 127 | - }).catch(() => { | ||
| 128 | - }); | ||
| 129 | - }, | 171 | + this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { |
| 172 | + type: 'warning' | ||
| 173 | + }).then(() => { | ||
| 174 | + request({ | ||
| 175 | + url: `/api/Education/TbQuestion/${id}`, | ||
| 176 | + method: 'DELETE' | ||
| 177 | + }).then(res => { | ||
| 178 | + this.$message({ | ||
| 179 | + type: 'success', | ||
| 180 | + message: res.msg, | ||
| 181 | + onClose: () => { | ||
| 182 | + this.initData() | ||
| 183 | + } | ||
| 184 | + }); | ||
| 185 | + }) | ||
| 186 | + }).catch(() => {}); | ||
| 187 | + }, | ||
| 130 | handleSelectionChange(val) { | 188 | handleSelectionChange(val) { |
| 131 | - const res = val.map(item => item.id) | ||
| 132 | - this.multipleSelection = res | ||
| 133 | - }, | ||
| 134 | - handleBatchRemoveDel() { | ||
| 135 | - if (!this.multipleSelection.length) { | ||
| 136 | - this.$message({ | ||
| 137 | - type: 'error', | ||
| 138 | - message: '请选择一条数据', | ||
| 139 | - duration: 1500, | ||
| 140 | - }) | ||
| 141 | - return | ||
| 142 | - } | ||
| 143 | - const ids = this.multipleSelection | ||
| 144 | - this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { | ||
| 145 | - type: 'warning' | ||
| 146 | - }).then(() => { | ||
| 147 | - request({ | ||
| 148 | - url: `/api/Education/TbQuestion/batchRemove`, | ||
| 149 | - method: 'POST', | ||
| 150 | - data: ids , | ||
| 151 | - }).then(res => { | ||
| 152 | - this.$message({ | ||
| 153 | - type: 'success', | ||
| 154 | - message: res.msg, | ||
| 155 | - onClose: () => { | ||
| 156 | - this.initData() | ||
| 157 | - } | ||
| 158 | - }); | ||
| 159 | - }) | ||
| 160 | - }).catch(() => { }) | ||
| 161 | - }, | 189 | + const res = val.map(item => item.id) |
| 190 | + this.multipleSelection = res | ||
| 191 | + }, | ||
| 192 | + handleBatchRemoveDel() { | ||
| 193 | + if (!this.multipleSelection.length) { | ||
| 194 | + this.$message({ | ||
| 195 | + type: 'error', | ||
| 196 | + message: '请选择一条数据', | ||
| 197 | + duration: 1500, | ||
| 198 | + }) | ||
| 199 | + return | ||
| 200 | + } | ||
| 201 | + const ids = this.multipleSelection | ||
| 202 | + this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', { | ||
| 203 | + type: 'warning' | ||
| 204 | + }).then(() => { | ||
| 205 | + request({ | ||
| 206 | + url: `/api/Education/TbQuestion/batchRemove`, | ||
| 207 | + method: 'POST', | ||
| 208 | + data: ids, | ||
| 209 | + }).then(res => { | ||
| 210 | + this.$message({ | ||
| 211 | + type: 'success', | ||
| 212 | + message: res.msg, | ||
| 213 | + onClose: () => { | ||
| 214 | + this.initData() | ||
| 215 | + } | ||
| 216 | + }); | ||
| 217 | + }) | ||
| 218 | + }).catch(() => {}) | ||
| 219 | + }, | ||
| 162 | addOrUpdateHandle(id, isDetail) { | 220 | addOrUpdateHandle(id, isDetail) { |
| 163 | - this.formVisible = true | ||
| 164 | - this.$nextTick(() => { | ||
| 165 | - this.$refs.NCCForm.init(id, isDetail) | ||
| 166 | - }) | ||
| 167 | - }, | 221 | + this.formVisible = true |
| 222 | + this.$nextTick(() => { | ||
| 223 | + this.$refs.NCCForm.init(id, isDetail) | ||
| 224 | + }) | ||
| 225 | + }, | ||
| 168 | exportData() { | 226 | exportData() { |
| 169 | - this.exportBoxVisible = true | ||
| 170 | - this.$nextTick(() => { | ||
| 171 | - this.$refs.ExportBox.init(this.columnList) | ||
| 172 | - }) | ||
| 173 | - }, | ||
| 174 | - download(data) { | ||
| 175 | - let query = { ...data, ...this.listQuery, ...this.query } | ||
| 176 | - request({ | ||
| 177 | - url: `/api/Education/TbQuestion/Actions/Export`, | ||
| 178 | - method: 'GET', | ||
| 179 | - data: query | ||
| 180 | - }).then(res => { | ||
| 181 | - if (!res.data.url) return | ||
| 182 | - window.location.href = this.define.comUrl + res.data.url | ||
| 183 | - this.$refs.ExportBox.visible = false | ||
| 184 | - this.exportBoxVisible = false | ||
| 185 | - }) | ||
| 186 | - }, | 227 | + this.exportBoxVisible = true |
| 228 | + this.$nextTick(() => { | ||
| 229 | + this.$refs.ExportBox.init(this.columnList) | ||
| 230 | + }) | ||
| 231 | + }, | ||
| 232 | + download(data) { | ||
| 233 | + let query = { | ||
| 234 | + ...data, | ||
| 235 | + ...this.listQuery, | ||
| 236 | + ...this.query | ||
| 237 | + } | ||
| 238 | + request({ | ||
| 239 | + url: `/api/Education/TbQuestion/Actions/Export`, | ||
| 240 | + method: 'GET', | ||
| 241 | + data: query | ||
| 242 | + }).then(res => { | ||
| 243 | + if (!res.data.url) return | ||
| 244 | + window.location.href = this.define.comUrl + res.data.url | ||
| 245 | + this.$refs.ExportBox.visible = false | ||
| 246 | + this.exportBoxVisible = false | ||
| 247 | + }) | ||
| 248 | + }, | ||
| 187 | search() { | 249 | search() { |
| 188 | - this.listQuery = { | ||
| 189 | - currentPage: 1, | ||
| 190 | - pageSize: 20, | ||
| 191 | - sort: "desc", | ||
| 192 | - sidx: "", | ||
| 193 | - } | ||
| 194 | - this.initData() | ||
| 195 | - }, | ||
| 196 | - refresh(isrRefresh) { | ||
| 197 | - this.formVisible = false | ||
| 198 | - if (isrRefresh) this.reset() | ||
| 199 | - }, | ||
| 200 | - reset() { | ||
| 201 | - for (let key in this.query) { | ||
| 202 | - this.query[key] = undefined | ||
| 203 | - } | ||
| 204 | - this.listQuery = { | ||
| 205 | - currentPage: 1, | ||
| 206 | - pageSize: 20, | ||
| 207 | - sort: "desc", | ||
| 208 | - sidx: "", | ||
| 209 | - } | ||
| 210 | - this.initData() | ||
| 211 | - } | 250 | + this.listQuery = { |
| 251 | + currentPage: 1, | ||
| 252 | + pageSize: 20, | ||
| 253 | + sort: "desc", | ||
| 254 | + sidx: "", | ||
| 255 | + } | ||
| 256 | + this.initData() | ||
| 257 | + }, | ||
| 258 | + refresh(isrRefresh) { | ||
| 259 | + this.formVisible = false | ||
| 260 | + if (isrRefresh) this.reset() | ||
| 261 | + }, | ||
| 262 | + reset() { | ||
| 263 | + for (let key in this.query) { | ||
| 264 | + this.query[key] = undefined | ||
| 265 | + } | ||
| 266 | + this.listQuery = { | ||
| 267 | + currentPage: 1, | ||
| 268 | + pageSize: 20, | ||
| 269 | + sort: "desc", | ||
| 270 | + sidx: "", | ||
| 271 | + } | ||
| 272 | + this.initData() | ||
| 273 | + } | ||
| 212 | } | 274 | } |
| 213 | - } | ||
| 214 | -</script> | ||
| 215 | \ No newline at end of file | 275 | \ No newline at end of file |
| 276 | + } | ||
| 277 | +</script> |
antis-ncc-net-core/ClassLibrary1/测评信息/Dto/TbEvaluationCrInput.cs
| @@ -33,6 +33,10 @@ namespace NCC.Education.Entitys.Dto.TbEvaluation | @@ -33,6 +33,10 @@ namespace NCC.Education.Entitys.Dto.TbEvaluation | ||
| 33 | /// 修改时间 | 33 | /// 修改时间 |
| 34 | /// </summary> | 34 | /// </summary> |
| 35 | public DateTime? lastModifyTime { get; set; } | 35 | public DateTime? lastModifyTime { get; set; } |
| 36 | - | 36 | + /// <summary> |
| 37 | + /// 是否默认 1--默认 2--普通 | ||
| 38 | + /// </summary> | ||
| 39 | + public string detault { get; set; } | ||
| 40 | + | ||
| 37 | } | 41 | } |
| 38 | } | 42 | } |
antis-ncc-net-core/ClassLibrary1/测评信息/Dto/TbEvaluationInfoOutput.cs
| @@ -38,6 +38,10 @@ namespace NCC.Education.Entitys.Dto.TbEvaluation | @@ -38,6 +38,10 @@ namespace NCC.Education.Entitys.Dto.TbEvaluation | ||
| 38 | /// 修改时间 | 38 | /// 修改时间 |
| 39 | /// </summary> | 39 | /// </summary> |
| 40 | public DateTime? lastModifyTime { get; set; } | 40 | public DateTime? lastModifyTime { get; set; } |
| 41 | - | 41 | + /// <summary> |
| 42 | + /// 是否默认 1--默认 2--普通 | ||
| 43 | + /// </summary> | ||
| 44 | + public string detault { get; set; } | ||
| 45 | + | ||
| 42 | } | 46 | } |
| 43 | } | 47 | } |
antis-ncc-net-core/ClassLibrary1/测评信息/Dto/TbEvaluationListOutput.cs
| @@ -54,6 +54,10 @@ namespace NCC.Education.Entitys.Dto.TbEvaluation | @@ -54,6 +54,10 @@ namespace NCC.Education.Entitys.Dto.TbEvaluation | ||
| 54 | /// 修改时间 | 54 | /// 修改时间 |
| 55 | /// </summary> | 55 | /// </summary> |
| 56 | public DateTime? lastModifyTime { get; set; } | 56 | public DateTime? lastModifyTime { get; set; } |
| 57 | - | 57 | + /// <summary> |
| 58 | + /// 是否默认 1--默认 2--普通 | ||
| 59 | + /// </summary> | ||
| 60 | + public string detault { get; set; } | ||
| 61 | + | ||
| 58 | } | 62 | } |
| 59 | } | 63 | } |
antis-ncc-net-core/ClassLibrary1/测评信息/Dto/TbEvaluationListQueryInput.cs
| @@ -23,6 +23,10 @@ namespace NCC.Education.Entitys.Dto.TbEvaluation | @@ -23,6 +23,10 @@ namespace NCC.Education.Entitys.Dto.TbEvaluation | ||
| 23 | /// 标题 | 23 | /// 标题 |
| 24 | /// </summary> | 24 | /// </summary> |
| 25 | public string title { get; set; } | 25 | public string title { get; set; } |
| 26 | - | 26 | + /// <summary> |
| 27 | + /// 是否默认 1--默认 2--普通 | ||
| 28 | + /// </summary> | ||
| 29 | + public string detault { get; set; } | ||
| 30 | + | ||
| 27 | } | 31 | } |
| 28 | } | 32 | } |
antis-ncc-net-core/ClassLibrary1/测评信息/Entity/TbEvaluationEntity.cs
| @@ -46,6 +46,10 @@ namespace NCC.Education.Entitys | @@ -46,6 +46,10 @@ namespace NCC.Education.Entitys | ||
| 46 | /// </summary> | 46 | /// </summary> |
| 47 | [SugarColumn(ColumnName = "F_LastModifyTime")] | 47 | [SugarColumn(ColumnName = "F_LastModifyTime")] |
| 48 | public DateTime? LastModifyTime { get; set; } | 48 | public DateTime? LastModifyTime { get; set; } |
| 49 | - | 49 | + /// <summary> |
| 50 | + /// 是否默认 1--默认 2--非默认 | ||
| 51 | + /// </summary> | ||
| 52 | + [SugarColumn(ColumnName = "F_Detault")] | ||
| 53 | + public string Detault { get; set; } | ||
| 50 | } | 54 | } |
| 51 | } | 55 | } |
| 52 | \ No newline at end of file | 56 | \ No newline at end of file |
antis-ncc-net-core/ClassLibrary1/题库信息/Dto/TbQuestionCrInput.cs
| @@ -33,6 +33,10 @@ namespace NCC.Education.Entitys.Dto.TbQuestion | @@ -33,6 +33,10 @@ namespace NCC.Education.Entitys.Dto.TbQuestion | ||
| 33 | /// 修改时间 | 33 | /// 修改时间 |
| 34 | /// </summary> | 34 | /// </summary> |
| 35 | public DateTime? lastModifyTime { get; set; } | 35 | public DateTime? lastModifyTime { get; set; } |
| 36 | - | 36 | + /// <summary> |
| 37 | + /// 是否默认 1--默认 2--普通 | ||
| 38 | + /// </summary> | ||
| 39 | + public string detault { get; set; } | ||
| 40 | + | ||
| 37 | } | 41 | } |
| 38 | } | 42 | } |
antis-ncc-net-core/ClassLibrary1/题库信息/Dto/TbQuestionInfoOutput.cs
| @@ -38,6 +38,10 @@ namespace NCC.Education.Entitys.Dto.TbQuestion | @@ -38,6 +38,10 @@ namespace NCC.Education.Entitys.Dto.TbQuestion | ||
| 38 | /// 修改时间 | 38 | /// 修改时间 |
| 39 | /// </summary> | 39 | /// </summary> |
| 40 | public DateTime? lastModifyTime { get; set; } | 40 | public DateTime? lastModifyTime { get; set; } |
| 41 | - | 41 | + /// <summary> |
| 42 | + /// 是否默认 1--默认 2--普通 | ||
| 43 | + /// </summary> | ||
| 44 | + public string detault { get; set; } | ||
| 45 | + | ||
| 42 | } | 46 | } |
| 43 | } | 47 | } |
antis-ncc-net-core/ClassLibrary1/题库信息/Dto/TbQuestionListOutput.cs
| 1 | -using System; | 1 | +using Aspose.Words.Lists; |
| 2 | +using NCC.Common.Model; | ||
| 3 | +using Newtonsoft.Json; | ||
| 4 | +using SqlSugar; | ||
| 5 | +using System; | ||
| 6 | +using System.Collections.Generic; | ||
| 2 | 7 | ||
| 3 | namespace NCC.Education.Entitys.Dto.TbQuestion | 8 | namespace NCC.Education.Entitys.Dto.TbQuestion |
| 4 | { | 9 | { |
| @@ -16,7 +21,9 @@ namespace NCC.Education.Entitys.Dto.TbQuestion | @@ -16,7 +21,9 @@ namespace NCC.Education.Entitys.Dto.TbQuestion | ||
| 16 | /// 标题 | 21 | /// 标题 |
| 17 | /// </summary> | 22 | /// </summary> |
| 18 | public string title { get; set; } | 23 | public string title { get; set; } |
| 19 | - | 24 | + |
| 25 | + public string editors { get; set; } | ||
| 26 | + | ||
| 20 | /// <summary> | 27 | /// <summary> |
| 21 | /// 创建时间 | 28 | /// 创建时间 |
| 22 | /// </summary> | 29 | /// </summary> |
| @@ -26,6 +33,26 @@ namespace NCC.Education.Entitys.Dto.TbQuestion | @@ -26,6 +33,26 @@ namespace NCC.Education.Entitys.Dto.TbQuestion | ||
| 26 | /// 修改时间 | 33 | /// 修改时间 |
| 27 | /// </summary> | 34 | /// </summary> |
| 28 | public DateTime? lastModifyTime { get; set; } | 35 | public DateTime? lastModifyTime { get; set; } |
| 29 | - | 36 | + |
| 37 | + /// <summary> | ||
| 38 | + /// 图片信息 | ||
| 39 | + /// </summary> | ||
| 40 | + public string img { get; set; } | ||
| 41 | + /// <summary> | ||
| 42 | + /// 是否默认 1--默认 2--普通 | ||
| 43 | + /// </summary> | ||
| 44 | + public string detault { get; set; } | ||
| 45 | + | ||
| 46 | + public List<FileControlsModel> Img { get | ||
| 47 | + { | ||
| 48 | + try | ||
| 49 | + { | ||
| 50 | + return JsonConvert.DeserializeObject<List<FileControlsModel>>(img); | ||
| 51 | + }catch(Exception ex) | ||
| 52 | + { | ||
| 53 | + return new List<FileControlsModel>(); | ||
| 54 | + } | ||
| 55 | + } } | ||
| 56 | + | ||
| 30 | } | 57 | } |
| 31 | } | 58 | } |
antis-ncc-net-core/ClassLibrary1/题库信息/Dto/TbQuestionListQueryInput.cs
| @@ -23,6 +23,10 @@ namespace NCC.Education.Entitys.Dto.TbQuestion | @@ -23,6 +23,10 @@ namespace NCC.Education.Entitys.Dto.TbQuestion | ||
| 23 | /// 标题 | 23 | /// 标题 |
| 24 | /// </summary> | 24 | /// </summary> |
| 25 | public string title { get; set; } | 25 | public string title { get; set; } |
| 26 | - | 26 | + /// <summary> |
| 27 | + /// 是否默认 1--默认 2--普通 | ||
| 28 | + /// </summary> | ||
| 29 | + public string detault { get; set; } | ||
| 30 | + | ||
| 27 | } | 31 | } |
| 28 | } | 32 | } |
antis-ncc-net-core/ClassLibrary1/题库信息/Entity/TbQuestionEntity.cs
| @@ -46,6 +46,11 @@ namespace NCC.Education.Entitys | @@ -46,6 +46,11 @@ namespace NCC.Education.Entitys | ||
| 46 | /// </summary> | 46 | /// </summary> |
| 47 | [SugarColumn(ColumnName = "F_LastModifyTime")] | 47 | [SugarColumn(ColumnName = "F_LastModifyTime")] |
| 48 | public DateTime? LastModifyTime { get; set; } | 48 | public DateTime? LastModifyTime { get; set; } |
| 49 | - | 49 | + /// <summary> |
| 50 | + /// 是否默认 1--默认 2--非默认 | ||
| 51 | + /// </summary> | ||
| 52 | + [SugarColumn(ColumnName = "F_Detault")] | ||
| 53 | + public string Detault { get; set; } | ||
| 54 | + | ||
| 50 | } | 55 | } |
| 51 | } | 56 | } |
| 52 | \ No newline at end of file | 57 | \ No newline at end of file |
antis-ncc-net-core/NCC.Education/会员码管理/TbMemCodeService.cs
| @@ -25,6 +25,7 @@ using NCC.ClayObject; | @@ -25,6 +25,7 @@ using NCC.ClayObject; | ||
| 25 | using NCC.System.Interfaces.System; | 25 | using NCC.System.Interfaces.System; |
| 26 | using NCC.System.Entitys.Permission; | 26 | using NCC.System.Entitys.Permission; |
| 27 | using Microsoft.Extensions.Logging; | 27 | using Microsoft.Extensions.Logging; |
| 28 | +using NPOI.HPSF; | ||
| 28 | 29 | ||
| 29 | namespace NCC.Education.TbMemCode | 30 | namespace NCC.Education.TbMemCode |
| 30 | { | 31 | { |
| @@ -62,6 +63,91 @@ namespace NCC.Education.TbMemCode | @@ -62,6 +63,91 @@ namespace NCC.Education.TbMemCode | ||
| 62 | } | 63 | } |
| 63 | 64 | ||
| 64 | /// <summary> | 65 | /// <summary> |
| 66 | + /// 获取时间戳 | ||
| 67 | + /// </summary> | ||
| 68 | + /// <returns></returns> | ||
| 69 | + public static long getTime() | ||
| 70 | + { | ||
| 71 | + return (long)(DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1)).TotalMilliseconds; | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + /// <summary> | ||
| 75 | + /// 批量生成会员码入参 | ||
| 76 | + /// </summary> | ||
| 77 | + public class mutineCreateCodeOptions | ||
| 78 | + { | ||
| 79 | + /// <summary> | ||
| 80 | + /// 个数 | ||
| 81 | + /// </summary> | ||
| 82 | + public int numbers { get; set; } | ||
| 83 | + /// <summary> | ||
| 84 | + /// 过期时间 | ||
| 85 | + /// </summary> | ||
| 86 | + public DateTime? expire { get; set; } | ||
| 87 | + | ||
| 88 | + } | ||
| 89 | + /// <summary> | ||
| 90 | + /// 批量生成会员码 | ||
| 91 | + /// </summary> | ||
| 92 | + /// <returns></returns> | ||
| 93 | + [HttpPost("MutinueCreateCode")] | ||
| 94 | + public async Task MutinueCreateCode(mutineCreateCodeOptions query) | ||
| 95 | + { | ||
| 96 | + List<TbMemCodeEntity> list = new List<TbMemCodeEntity>(); | ||
| 97 | + for(var i=0;i< query.numbers; i++) | ||
| 98 | + { | ||
| 99 | + list.Add(new TbMemCodeEntity | ||
| 100 | + { | ||
| 101 | + Id = YitIdHelper.NextId().ToString(), | ||
| 102 | + Code =Guid.NewGuid().ToString().Replace("-","").ToLower().Substring(0,10), | ||
| 103 | + Expire = query.expire, | ||
| 104 | + Type = "2", | ||
| 105 | + CreatorTime = DateTime.Now | ||
| 106 | + }); | ||
| 107 | + } | ||
| 108 | + var result = _db.Insertable(list).ExecuteCommand(); | ||
| 109 | + if (!(result > 0)) throw NCCException.Oh($"批量生成失败!"); | ||
| 110 | + } | ||
| 111 | + | ||
| 112 | + /// <summary> | ||
| 113 | + /// 批量更改会员截至日期入参 | ||
| 114 | + /// </summary> | ||
| 115 | + public class MutineUpdateExpireOptions | ||
| 116 | + { | ||
| 117 | + /// <summary> | ||
| 118 | + /// IDS | ||
| 119 | + /// </summary> | ||
| 120 | + public string ids { get; set; } | ||
| 121 | + /// <summary> | ||
| 122 | + /// 会员截至日期 | ||
| 123 | + /// </summary> | ||
| 124 | + public DateTime? expire { get; set; } | ||
| 125 | + } | ||
| 126 | + | ||
| 127 | + /// <summary> | ||
| 128 | + /// 批量更改会员截至日期 | ||
| 129 | + /// </summary> | ||
| 130 | + /// <param name="query"></param> | ||
| 131 | + /// <returns></returns> | ||
| 132 | + [HttpPost("MutinueUpdateDaysNumber")] | ||
| 133 | + public async Task MutinueUpdateDaysNumber(MutineUpdateExpireOptions query) | ||
| 134 | + { | ||
| 135 | + if (query.ids.IsNullOrEmpty()) throw NCCException.Oh($"参数错误"); | ||
| 136 | + List<string> list = new List<string>(); | ||
| 137 | + if (!query.ids.Contains(",")) | ||
| 138 | + { | ||
| 139 | + list.Add(query.ids); | ||
| 140 | + } | ||
| 141 | + else | ||
| 142 | + { | ||
| 143 | + list = query.ids.Split(",").ToList(); | ||
| 144 | + } | ||
| 145 | + var result = _db.Updateable<TbMemCodeEntity>().SetColumns(it => new TbMemCodeEntity { Expire = query.expire }).Where(o => list.Contains(o.Id)).ExecuteCommand(); | ||
| 146 | + if (!(result > 0)) throw NCCException.Oh($"批量更改失败!"); | ||
| 147 | + } | ||
| 148 | + | ||
| 149 | + | ||
| 150 | + /// <summary> | ||
| 65 | /// 普通用户根据会员码转会员参数 | 151 | /// 普通用户根据会员码转会员参数 |
| 66 | /// </summary> | 152 | /// </summary> |
| 67 | public class ShiftToMemOptions | 153 | public class ShiftToMemOptions |
antis-ncc-net-core/NCC.Education/打卡记录/TbPunchService.cs
| @@ -62,6 +62,29 @@ namespace NCC.Education.TbPunch | @@ -62,6 +62,29 @@ namespace NCC.Education.TbPunch | ||
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | /// <summary> | 64 | /// <summary> |
| 65 | + /// 查询用户会员到期时间 | ||
| 66 | + /// </summary> | ||
| 67 | + /// <returns></returns> | ||
| 68 | + [HttpPost("TaskSchedulerUserType")] | ||
| 69 | + public async Task TaskSchedulerUserType() | ||
| 70 | + { | ||
| 71 | + var list = _db.Queryable<UserEntity>().Where(o => o.IsAdministrator == 0).ToList(); | ||
| 72 | + foreach (var item in list) | ||
| 73 | + { | ||
| 74 | + if (item.Type == "2" && item.MemDate.ToDate() < DateTime.Now) | ||
| 75 | + { | ||
| 76 | + item.Type = "1"; | ||
| 77 | + item.MemDate = null; | ||
| 78 | + var result = _db.Updateable(item).ExecuteCommand(); | ||
| 79 | + _logger.LogInformation($"更改会员用户为普通用户:{result}----{item.ToJson()}"); | ||
| 80 | + } | ||
| 81 | + } | ||
| 82 | + } | ||
| 83 | + | ||
| 84 | + | ||
| 85 | + | ||
| 86 | + | ||
| 87 | + /// <summary> | ||
| 65 | /// 每天凌晨过5分判断前一天的时间有那些人没打卡 进行赋值缺卡 | 88 | /// 每天凌晨过5分判断前一天的时间有那些人没打卡 进行赋值缺卡 |
| 66 | /// </summary> | 89 | /// </summary> |
| 67 | /// <returns></returns> | 90 | /// <returns></returns> |
antis-ncc-net-core/NCC.Education/测评信息/TbEvaluationService.cs
| @@ -54,7 +54,29 @@ namespace NCC.Education.TbEvaluation | @@ -54,7 +54,29 @@ namespace NCC.Education.TbEvaluation | ||
| 54 | _dataBaseService = dataBaseService; | 54 | _dataBaseService = dataBaseService; |
| 55 | _userManager = userManager; | 55 | _userManager = userManager; |
| 56 | } | 56 | } |
| 57 | - | 57 | + /// <summary> |
| 58 | + /// 根据ID设定测评默认 | ||
| 59 | + /// </summary> | ||
| 60 | + /// <param name="id"></param> | ||
| 61 | + /// <returns></returns> | ||
| 62 | + [HttpPost("ConfirmEvalDefault")] | ||
| 63 | + public async Task ConfirmEvalDefault(string id) | ||
| 64 | + { | ||
| 65 | + var model = _db.Queryable<TbEvaluationEntity>().Where(o => o.Id == id).First(); | ||
| 66 | + if (model == null) throw NCCException.Oh($"暂无此数据"); | ||
| 67 | + try | ||
| 68 | + { | ||
| 69 | + _db.BeginTran(); | ||
| 70 | + var result =await _db.Updateable<TbEvaluationEntity>().SetColumns(it => new TbEvaluationEntity { Detault = "2" }).Where(o => o.Detault == "1").ExecuteCommandAsync(); | ||
| 71 | + model.Detault = "1"; | ||
| 72 | + var data = await _db.Updateable(model).ExecuteCommandAsync(); | ||
| 73 | + _db.CommitTran(); | ||
| 74 | + } | ||
| 75 | + catch (Exception ex) | ||
| 76 | + { | ||
| 77 | + _db.RollbackTran(); | ||
| 78 | + } | ||
| 79 | + } | ||
| 58 | /// <summary> | 80 | /// <summary> |
| 59 | /// 获取测评信息 | 81 | /// 获取测评信息 |
| 60 | /// </summary> | 82 | /// </summary> |
| @@ -99,6 +121,8 @@ namespace NCC.Education.TbEvaluation | @@ -99,6 +121,8 @@ namespace NCC.Education.TbEvaluation | ||
| 99 | var sidx = input.sidx == null ? "id" : input.sidx; | 121 | var sidx = input.sidx == null ? "id" : input.sidx; |
| 100 | var data = await _db.Queryable<TbEvaluationEntity>() | 122 | var data = await _db.Queryable<TbEvaluationEntity>() |
| 101 | .WhereIF(!string.IsNullOrEmpty(input.title), p => p.Title.Contains(input.title)) | 123 | .WhereIF(!string.IsNullOrEmpty(input.title), p => p.Title.Contains(input.title)) |
| 124 | + .WhereIF(!string.IsNullOrEmpty(input.detault), p => p.Detault.Equals(input.detault)) | ||
| 125 | + | ||
| 102 | .Select(it=> new TbEvaluationListOutput | 126 | .Select(it=> new TbEvaluationListOutput |
| 103 | { | 127 | { |
| 104 | id = it.Id, | 128 | id = it.Id, |
| @@ -107,6 +131,7 @@ namespace NCC.Education.TbEvaluation | @@ -107,6 +131,7 @@ namespace NCC.Education.TbEvaluation | ||
| 107 | lastModifyTime=it.LastModifyTime, | 131 | lastModifyTime=it.LastModifyTime, |
| 108 | editors = it.Editors, | 132 | editors = it.Editors, |
| 109 | img =it.Img, | 133 | img =it.Img, |
| 134 | + detault=it.Detault, | ||
| 110 | }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize); | 135 | }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize); |
| 111 | return PageResult<TbEvaluationListOutput>.SqlSugarPageResult(data); | 136 | return PageResult<TbEvaluationListOutput>.SqlSugarPageResult(data); |
| 112 | } | 137 | } |
| @@ -132,7 +157,12 @@ namespace NCC.Education.TbEvaluation | @@ -132,7 +157,12 @@ namespace NCC.Education.TbEvaluation | ||
| 132 | var userInfo = await _userManager.GetUserInfo(); | 157 | var userInfo = await _userManager.GetUserInfo(); |
| 133 | var entity = input.Adapt<TbEvaluationEntity>(); | 158 | var entity = input.Adapt<TbEvaluationEntity>(); |
| 134 | entity.Id = YitIdHelper.NextId().ToString(); | 159 | entity.Id = YitIdHelper.NextId().ToString(); |
| 135 | - entity.CreatorTime = DateTime.Now; | 160 | + entity.CreatorTime = DateTime.Now; |
| 161 | + if (entity.Detault == "1") | ||
| 162 | + { | ||
| 163 | + var result = await _db.Updateable<TbEvaluationEntity>().SetColumns(it => new TbEvaluationEntity { Detault = "2" }).Where(o => o.Detault == "1").ExecuteCommandAsync(); | ||
| 164 | + if (!(result > 0)) throw NCCException.Oh($"更改默认值失败"); | ||
| 165 | + } | ||
| 136 | var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync(); | 166 | var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync(); |
| 137 | if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1000); | 167 | if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1000); |
| 138 | } | 168 | } |
| @@ -158,12 +188,15 @@ namespace NCC.Education.TbEvaluation | @@ -158,12 +188,15 @@ namespace NCC.Education.TbEvaluation | ||
| 158 | var sidx = input.sidx == null ? "id" : input.sidx; | 188 | var sidx = input.sidx == null ? "id" : input.sidx; |
| 159 | var data = await _db.Queryable<TbEvaluationEntity>() | 189 | var data = await _db.Queryable<TbEvaluationEntity>() |
| 160 | .WhereIF(!string.IsNullOrEmpty(input.title), p => p.Title.Contains(input.title)) | 190 | .WhereIF(!string.IsNullOrEmpty(input.title), p => p.Title.Contains(input.title)) |
| 191 | + .WhereIF(!string.IsNullOrEmpty(input.detault), p => p.Detault.Equals(input.detault)) | ||
| 192 | + | ||
| 161 | .Select(it=> new TbEvaluationListOutput | 193 | .Select(it=> new TbEvaluationListOutput |
| 162 | { | 194 | { |
| 163 | id = it.Id, | 195 | id = it.Id, |
| 164 | title=it.Title, | 196 | title=it.Title, |
| 165 | creatorTime=it.CreatorTime, | 197 | creatorTime=it.CreatorTime, |
| 166 | lastModifyTime=it.LastModifyTime, | 198 | lastModifyTime=it.LastModifyTime, |
| 199 | + detault=it.Detault, | ||
| 167 | }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync(); | 200 | }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync(); |
| 168 | return data; | 201 | return data; |
| 169 | } | 202 | } |
| @@ -187,7 +220,7 @@ namespace NCC.Education.TbEvaluation | @@ -187,7 +220,7 @@ namespace NCC.Education.TbEvaluation | ||
| 187 | { | 220 | { |
| 188 | exportData = await this.GetNoPagingList(input); | 221 | exportData = await this.GetNoPagingList(input); |
| 189 | } | 222 | } |
| 190 | - List<ParamsModel> paramList = "[{\"value\":\"标题\",\"field\":\"title\"},{\"value\":\"创建时间\",\"field\":\"creatorTime\"},{\"value\":\"修改时间\",\"field\":\"lastModifyTime\"},]".ToList<ParamsModel>(); | 223 | + List<ParamsModel> paramList = "[{\"value\":\"标题\",\"field\":\"title\"},{\"value\":\"创建时间\",\"field\":\"creatorTime\"},{\"value\":\"修改时间\",\"field\":\"lastModifyTime\"},{\"value\":\"是否默认\",\"field\":\"detault\"},]".ToList<ParamsModel>(); |
| 191 | ExcelConfig excelconfig = new ExcelConfig(); | 224 | ExcelConfig excelconfig = new ExcelConfig(); |
| 192 | excelconfig.FileName = "测评信息.xls"; | 225 | excelconfig.FileName = "测评信息.xls"; |
| 193 | excelconfig.HeadFont = "微软雅黑"; | 226 | excelconfig.HeadFont = "微软雅黑"; |
| @@ -273,7 +306,12 @@ namespace NCC.Education.TbEvaluation | @@ -273,7 +306,12 @@ namespace NCC.Education.TbEvaluation | ||
| 273 | }); | 306 | }); |
| 274 | _db.ChangeDatabase(dbLink.Id); | 307 | _db.ChangeDatabase(dbLink.Id); |
| 275 | var entity = input.Adapt<TbEvaluationEntity>(); | 308 | var entity = input.Adapt<TbEvaluationEntity>(); |
| 276 | - entity.LastModifyTime = DateTime.Now; | 309 | + entity.LastModifyTime = DateTime.Now; |
| 310 | + if (entity.Detault == "1") | ||
| 311 | + { | ||
| 312 | + var result = await _db.Updateable<TbEvaluationEntity>().SetColumns(it => new TbEvaluationEntity { Detault = "2" }).Where(o => o.Detault == "1").ExecuteCommandAsync(); | ||
| 313 | + if (!(result > 0)) throw NCCException.Oh($"更改默认值失败"); | ||
| 314 | + } | ||
| 277 | var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); | 315 | var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); |
| 278 | if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001); | 316 | if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001); |
| 279 | } | 317 | } |
antis-ncc-net-core/NCC.Education/题库信息/TbQuestionService.cs
| @@ -54,6 +54,32 @@ namespace NCC.Education.TbQuestion | @@ -54,6 +54,32 @@ namespace NCC.Education.TbQuestion | ||
| 54 | _dataBaseService = dataBaseService; | 54 | _dataBaseService = dataBaseService; |
| 55 | _userManager = userManager; | 55 | _userManager = userManager; |
| 56 | } | 56 | } |
| 57 | + /// <summary> | ||
| 58 | + /// 根据ID设定题库默认 | ||
| 59 | + /// </summary> | ||
| 60 | + /// <param name="id"></param> | ||
| 61 | + /// <returns></returns> | ||
| 62 | + [HttpPost("ConfirmDefault")] | ||
| 63 | + public async Task ConfirmDefault(string id) | ||
| 64 | + { | ||
| 65 | + var model = _db.Queryable<TbQuestionEntity>().Where(o => o.Id == id).First(); | ||
| 66 | + if (model == null) throw NCCException.Oh($"暂无此数据"); | ||
| 67 | + try | ||
| 68 | + { | ||
| 69 | + _db.BeginTran(); | ||
| 70 | + | ||
| 71 | + var result =await _db.Updateable<TbQuestionEntity>().SetColumns(it => new TbQuestionEntity { Detault = "2" }).Where(o => o.Detault == "1").ExecuteCommandAsync(); | ||
| 72 | + model.Detault = "1"; | ||
| 73 | + var data =await _db.Updateable(model).ExecuteCommandAsync(); | ||
| 74 | + _db.CommitTran(); | ||
| 75 | + }catch(Exception ex) | ||
| 76 | + { | ||
| 77 | + _db.RollbackTran(); | ||
| 78 | + } | ||
| 79 | + } | ||
| 80 | + | ||
| 81 | + | ||
| 82 | + | ||
| 57 | 83 | ||
| 58 | /// <summary> | 84 | /// <summary> |
| 59 | /// 获取题库信息 | 85 | /// 获取题库信息 |
| @@ -99,12 +125,18 @@ namespace NCC.Education.TbQuestion | @@ -99,12 +125,18 @@ namespace NCC.Education.TbQuestion | ||
| 99 | var sidx = input.sidx == null ? "id" : input.sidx; | 125 | var sidx = input.sidx == null ? "id" : input.sidx; |
| 100 | var data = await _db.Queryable<TbQuestionEntity>() | 126 | var data = await _db.Queryable<TbQuestionEntity>() |
| 101 | .WhereIF(!string.IsNullOrEmpty(input.title), p => p.Title.Contains(input.title)) | 127 | .WhereIF(!string.IsNullOrEmpty(input.title), p => p.Title.Contains(input.title)) |
| 128 | + .WhereIF(!string.IsNullOrEmpty(input.detault), p => p.Detault.Equals(input.detault)) | ||
| 129 | + | ||
| 102 | .Select(it=> new TbQuestionListOutput | 130 | .Select(it=> new TbQuestionListOutput |
| 103 | { | 131 | { |
| 104 | id = it.Id, | 132 | id = it.Id, |
| 105 | title=it.Title, | 133 | title=it.Title, |
| 106 | creatorTime=it.CreatorTime, | 134 | creatorTime=it.CreatorTime, |
| 135 | + img=it.Img, | ||
| 107 | lastModifyTime=it.LastModifyTime, | 136 | lastModifyTime=it.LastModifyTime, |
| 137 | + detault = it.Detault, | ||
| 138 | + editors= it.Editors, | ||
| 139 | + | ||
| 108 | }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize); | 140 | }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize); |
| 109 | return PageResult<TbQuestionListOutput>.SqlSugarPageResult(data); | 141 | return PageResult<TbQuestionListOutput>.SqlSugarPageResult(data); |
| 110 | } | 142 | } |
| @@ -130,7 +162,12 @@ namespace NCC.Education.TbQuestion | @@ -130,7 +162,12 @@ namespace NCC.Education.TbQuestion | ||
| 130 | var userInfo = await _userManager.GetUserInfo(); | 162 | var userInfo = await _userManager.GetUserInfo(); |
| 131 | var entity = input.Adapt<TbQuestionEntity>(); | 163 | var entity = input.Adapt<TbQuestionEntity>(); |
| 132 | entity.Id = YitIdHelper.NextId().ToString(); | 164 | entity.Id = YitIdHelper.NextId().ToString(); |
| 133 | - entity.CreatorTime = DateTime.Now; | 165 | + entity.CreatorTime = DateTime.Now; |
| 166 | + if (entity.Detault == "1") | ||
| 167 | + { | ||
| 168 | + var result =await _db.Updateable<TbQuestionEntity>().SetColumns(it => new TbQuestionEntity { Detault = "2" }).Where(o => o.Detault == "1").ExecuteCommandAsync(); | ||
| 169 | + if (!(result > 0)) throw NCCException.Oh($"更改默认值失败"); | ||
| 170 | + } | ||
| 134 | var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync(); | 171 | var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync(); |
| 135 | if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1000); | 172 | if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1000); |
| 136 | } | 173 | } |
| @@ -156,12 +193,16 @@ namespace NCC.Education.TbQuestion | @@ -156,12 +193,16 @@ namespace NCC.Education.TbQuestion | ||
| 156 | var sidx = input.sidx == null ? "id" : input.sidx; | 193 | var sidx = input.sidx == null ? "id" : input.sidx; |
| 157 | var data = await _db.Queryable<TbQuestionEntity>() | 194 | var data = await _db.Queryable<TbQuestionEntity>() |
| 158 | .WhereIF(!string.IsNullOrEmpty(input.title), p => p.Title.Contains(input.title)) | 195 | .WhereIF(!string.IsNullOrEmpty(input.title), p => p.Title.Contains(input.title)) |
| 196 | + .WhereIF(!string.IsNullOrEmpty(input.detault), p => p.Detault.Equals(input.detault)) | ||
| 197 | + | ||
| 159 | .Select(it=> new TbQuestionListOutput | 198 | .Select(it=> new TbQuestionListOutput |
| 160 | { | 199 | { |
| 161 | id = it.Id, | 200 | id = it.Id, |
| 162 | title=it.Title, | 201 | title=it.Title, |
| 163 | creatorTime=it.CreatorTime, | 202 | creatorTime=it.CreatorTime, |
| 164 | lastModifyTime=it.LastModifyTime, | 203 | lastModifyTime=it.LastModifyTime, |
| 204 | + detault = it.Detault, | ||
| 205 | + | ||
| 165 | }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync(); | 206 | }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync(); |
| 166 | return data; | 207 | return data; |
| 167 | } | 208 | } |
| @@ -185,7 +226,7 @@ namespace NCC.Education.TbQuestion | @@ -185,7 +226,7 @@ namespace NCC.Education.TbQuestion | ||
| 185 | { | 226 | { |
| 186 | exportData = await this.GetNoPagingList(input); | 227 | exportData = await this.GetNoPagingList(input); |
| 187 | } | 228 | } |
| 188 | - List<ParamsModel> paramList = "[{\"value\":\"标题\",\"field\":\"title\"},{\"value\":\"创建时间\",\"field\":\"creatorTime\"},{\"value\":\"修改时间\",\"field\":\"lastModifyTime\"},]".ToList<ParamsModel>(); | 229 | + List<ParamsModel> paramList = "[{\"value\":\"标题\",\"field\":\"title\"},{\"value\":\"创建时间\",\"field\":\"creatorTime\"},{\"value\":\"修改时间\",\"field\":\"lastModifyTime\"},{\"value\":\"是否默认\",\"field\":\"detault\"},]".ToList<ParamsModel>(); |
| 189 | ExcelConfig excelconfig = new ExcelConfig(); | 230 | ExcelConfig excelconfig = new ExcelConfig(); |
| 190 | excelconfig.FileName = "题库信息.xls"; | 231 | excelconfig.FileName = "题库信息.xls"; |
| 191 | excelconfig.HeadFont = "微软雅黑"; | 232 | excelconfig.HeadFont = "微软雅黑"; |
| @@ -271,7 +312,12 @@ namespace NCC.Education.TbQuestion | @@ -271,7 +312,12 @@ namespace NCC.Education.TbQuestion | ||
| 271 | }); | 312 | }); |
| 272 | _db.ChangeDatabase(dbLink.Id); | 313 | _db.ChangeDatabase(dbLink.Id); |
| 273 | var entity = input.Adapt<TbQuestionEntity>(); | 314 | var entity = input.Adapt<TbQuestionEntity>(); |
| 274 | - entity.LastModifyTime = DateTime.Now; | 315 | + entity.LastModifyTime = DateTime.Now; |
| 316 | + if (entity.Detault == "1") | ||
| 317 | + { | ||
| 318 | + var result =await _db.Updateable<TbQuestionEntity>().SetColumns(it => new TbQuestionEntity { Detault = "2" }).Where(o => o.Detault == "1").ExecuteCommandAsync(); | ||
| 319 | + if (!(result > 0)) throw NCCException.Oh($"更改默认值失败"); | ||
| 320 | + } | ||
| 275 | var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); | 321 | var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); |
| 276 | if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001); | 322 | if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001); |
| 277 | } | 323 | } |