新增显示终端培训签到二维码,分步表单修改

This commit is contained in:
Yjhon 2022-03-09 14:11:51 +08:00
parent cd4d5eb9a6
commit 9a0bde409d
4 changed files with 112 additions and 92 deletions

View File

@ -1,78 +1,79 @@
{ {
"name": "vue-antd-pro", "name": "vue-antd-pro",
"version": "3.0.0", "version": "3.0.0",
"private": true, "private": true,
"scripts": { "scripts": {
"serve": "vue-cli-service serve", "serve": "vue-cli-service serve",
"build": "vue-cli-service build", "build": "vue-cli-service build",
"test:unit": "vue-cli-service test:unit", "test:unit": "vue-cli-service test:unit",
"lint": "vue-cli-service lint", "lint": "vue-cli-service lint",
"build:preview": "vue-cli-service build --mode preview", "build:preview": "vue-cli-service build --mode preview",
"lint:nofix": "vue-cli-service lint --no-fix" "lint:nofix": "vue-cli-service lint --no-fix"
}, },
"dependencies": { "dependencies": {
"@ant-design-vue/pro-layout": "^0.3.4", "@ant-design-vue/pro-layout": "^0.3.4",
"@antv/data-set": "^0.10.2", "@antv/data-set": "^0.10.2",
"@icon-park/vue": "^1.3.5", "@icon-park/vue": "^1.3.5",
"ant-design-vue": "^1.7.7", "ant-design-vue": "^1.7.7",
"axios": "^0.19.0", "axios": "^0.19.0",
"core-js": "^3.1.2", "core-js": "^3.1.2",
"dplayer": "^1.26.0", "dplayer": "^1.26.0",
"draftjs-to-html": "^0.9.1", "draftjs-to-html": "^0.9.1",
"echarts": "^5.2.2", "echarts": "^5.2.2",
"enquire.js": "^2.1.6", "enquire.js": "^2.1.6",
"file-saver": "^2.0.5", "file-saver": "^2.0.5",
"html-to-draftjs": "^1.5.0", "html-to-draftjs": "^1.5.0",
"js-export-excel": "^1.1.4", "js-export-excel": "^1.1.4",
"jszip": "^3.7.1", "jszip": "^3.7.1",
"lodash.clonedeep": "^4.5.0", "lodash.clonedeep": "^4.5.0",
"lodash.get": "^4.4.2", "lodash.get": "^4.4.2",
"lodash.pick": "^4.4.0", "lodash.pick": "^4.4.0",
"md5": "^2.2.1", "md5": "^2.2.1",
"mockjs2": "1.0.8", "mockjs2": "1.0.8",
"moment": "^2.24.0", "moment": "^2.24.0",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"react-draft-wysiwyg": "^1.14.7", "react-draft-wysiwyg": "^1.14.7",
"store": "^2.0.12", "store": "^2.0.12",
"viser-vue": "^2.4.6", "viser-vue": "^2.4.6",
"vue": "^2.6.10", "vue": "^2.6.10",
"vue-clipboard2": "^0.2.1", "vue-clipboard2": "^0.2.1",
"vue-cropper": "0.4.9", "vue-cropper": "0.4.9",
"vue-echarts": "^6.0.2", "vue-echarts": "^6.0.2",
"vue-i18n": "^8.17.4", "vue-i18n": "^8.17.4",
"vue-quill-editor": "^3.0.6", "vue-print-nb": "^1.7.5",
"vue-router": "^3.1.2", "vue-quill-editor": "^3.0.6",
"vue-svg-component-runtime": "^1.0.1", "vue-router": "^3.1.2",
"vue-ueditor-wrap": "^2.5.6", "vue-svg-component-runtime": "^1.0.1",
"vue-video-player": "^5.0.2", "vue-ueditor-wrap": "^2.5.6",
"vuex": "^3.1.1", "vue-video-player": "^5.0.2",
"wangeditor": "^3.1.1" "vuex": "^3.1.1",
}, "wangeditor": "^3.1.1"
"devDependencies": { },
"@ant-design/colors": "^3.2.1", "devDependencies": {
"@vue/cli-plugin-babel": "^4.0.4", "@ant-design/colors": "^3.2.1",
"@vue/cli-plugin-eslint": "^4.0.4", "@vue/cli-plugin-babel": "^4.0.4",
"@vue/cli-plugin-router": "^4.0.4", "@vue/cli-plugin-eslint": "^4.0.4",
"@vue/cli-plugin-unit-jest": "^4.0.4", "@vue/cli-plugin-router": "^4.0.4",
"@vue/cli-plugin-vuex": "^4.0.4", "@vue/cli-plugin-unit-jest": "^4.0.4",
"@vue/cli-service": "^4.0.4", "@vue/cli-plugin-vuex": "^4.0.4",
"@vue/composition-api": "^1.4.4", "@vue/cli-service": "^4.0.4",
"@vue/eslint-config-standard": "^4.0.0", "@vue/composition-api": "^1.4.4",
"@vue/test-utils": "^1.0.0-beta.29", "@vue/eslint-config-standard": "^4.0.0",
"babel-eslint": "^10.0.1", "@vue/test-utils": "^1.0.0-beta.29",
"babel-plugin-import": "^1.12.2", "babel-eslint": "^10.0.1",
"babel-plugin-transform-remove-console": "^6.9.4", "babel-plugin-import": "^1.12.2",
"eslint": "^5.16.0", "babel-plugin-transform-remove-console": "^6.9.4",
"eslint-plugin-html": "^5.0.0", "eslint": "^5.16.0",
"eslint-plugin-vue": "^5.2.3", "eslint-plugin-html": "^5.0.0",
"git-revision-webpack-plugin": "^3.0.6", "eslint-plugin-vue": "^5.2.3",
"less": "^3.0.4", "git-revision-webpack-plugin": "^3.0.6",
"less-loader": "^5.0.0", "less": "^3.0.4",
"opencollective": "^1.0.3", "less-loader": "^5.0.0",
"opencollective-postinstall": "^2.0.2", "opencollective": "^1.0.3",
"vue-svg-icon-loader": "^2.1.1", "opencollective-postinstall": "^2.0.2",
"vue-template-compiler": "^2.6.10", "vue-svg-icon-loader": "^2.1.1",
"webpack": "^4.44.2", "vue-template-compiler": "^2.6.10",
"webpack-theme-color-replacer": "^1.3.12" "webpack": "^4.44.2",
} "webpack-theme-color-replacer": "^1.3.12"
} }
}

View File

@ -1,6 +1,8 @@
// with polyfills // with polyfills
import 'core-js/stable' import 'core-js/stable'
import 'regenerator-runtime/runtime' import 'regenerator-runtime/runtime'
import Print from 'vue-print-nb'
import Vue from 'vue' import Vue from 'vue'
import App from './App.vue' import App from './App.vue'
@ -41,6 +43,7 @@ Vue.prototype.$emptyImg = Empty.PRESENTED_IMAGE_SIMPLE
Vue.config.productionTip = false Vue.config.productionTip = false
Vue.use(Print); //注册
Vue.use(VueAxios) Vue.use(VueAxios)
Vue.component('pro-layout', ProLayout) Vue.component('pro-layout', ProLayout)
Vue.component('page-header-wrapper', PageHeaderWrapper) Vue.component('page-header-wrapper', PageHeaderWrapper)
@ -57,14 +60,14 @@ window.umi_plugin_ant_themeVar = themePluginConfig.theme
// ]) // ])
new Vue({ new Vue({
router, router,
store, store,
i18n, i18n,
created: bootstrap, created: bootstrap,
render: h => h(App) render: h => h(App)
}).$mount('#app') }).$mount('#app')
Vue.filter('moment', (dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') => { Vue.filter('moment', (dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') => {
if (!dataStr) return '' if (!dataStr) return ''
return moment(dataStr).format(pattern) return moment(dataStr).format(pattern)
}) })

View File

@ -68,7 +68,7 @@ export default {
form: { form: {
t: this.$route.query.t, t: this.$route.query.t,
projectType: 0, projectType: 0,
trainWay: '1', trainWay: '4',
totalScore: 0 totalScore: 0
}, },
result: true, result: true,

View File

@ -5,9 +5,7 @@
</template> </template>
<a-descriptions title="" layout="horizontal" bordered size="small" :column="1"> <a-descriptions title="" layout="horizontal" bordered size="small" :column="1">
<a-descriptions-item label="培训名称">{{ detailData.trainName }}</a-descriptions-item> <a-descriptions-item label="培训名称">{{ detailData.trainName }}</a-descriptions-item>
<a-descriptions-item label="培训时间" <a-descriptions-item label="培训时间">{{ detailData.trainSdate }} {{ detailData.trainEdate }}</a-descriptions-item>
>{{ detailData.trainSdate }} {{ detailData.trainEdate }}</a-descriptions-item
>
<a-descriptions-item label="培训地点">{{ detailData.trainAddress }}</a-descriptions-item> <a-descriptions-item label="培训地点">{{ detailData.trainAddress }}</a-descriptions-item>
<a-descriptions-item label="主持人">{{ detailData.host }}</a-descriptions-item> <a-descriptions-item label="主持人">{{ detailData.host }}</a-descriptions-item>
<a-descriptions-item label="会议人数">{{ detailData.personNum }}</a-descriptions-item> <a-descriptions-item label="会议人数">{{ detailData.personNum }}</a-descriptions-item>
@ -17,9 +15,20 @@
</a-descriptions> </a-descriptions>
<br /> <br />
<div style="width: 100%; height: 32px; margin-bottom: 8px"> <div style="width: 100%; height: 32px; margin-bottom: 8px">
<a-button v-if="hasPerm('terminal:train:edit') && detailData.status == 1" type="primary" @click="editInfo()"> </a-button> <a-button v-if="hasPerm('terminal:train:edit') && detailData.status == 1" type="primary" @click="editInfo()"> </a-button>
<a-button v-if="hasPerm('terminal:train:list')" type="primary" @click="signInfo()">会议签到信息</a-button> <a-button v-if="hasPerm('terminal:train:list')" type="primary" @click="signInfo()">会议签到信息</a-button>
<a-button type="primary" @click="showModal()">签到二维码</a-button>
</div> </div>
<a-modal title="签到二维码" :visible="visible" @ok="handleCancel" @cancel="handleCancel">
<div style="text-align:center;">
<div id="printArea" style="text-align:center;">
<h2>集中培训{{ detailData.trainName }}</h2>
<h2>签到二维码</h2>
<img :src="detailData.signCodeQrCode">
</div>
<a-button type="primary" v-print="'#printArea'"> </a-button>
</div>
</a-modal>
</a-card> </a-card>
</template> </template>
@ -34,6 +43,7 @@ export default {
return { return {
queryParam: this.$route.query.terminalTrainId, queryParam: this.$route.query.terminalTrainId,
detailData: {}, detailData: {},
visible: false
} }
}, },
created: function () { created: function () {
@ -43,6 +53,12 @@ export default {
}) })
}, },
methods: { methods: {
showModal() {
this.visible = true;
},
handleCancel(e) {
this.visible = false;
},
close() { close() {
this.$router.push({ this.$router.push({
path: '/project/project/terminalTrain/list', path: '/project/project/terminalTrain/list',
@ -55,7 +71,7 @@ export default {
}, },
}) })
}, },
editInfo(){ // editInfo() { //
this.$router.push({ this.$router.push({
path: '/project/terminalTrain/form', path: '/project/terminalTrain/form',
query: { query: {
@ -64,7 +80,7 @@ export default {
}) })
}, },
signInfo(){ // signInfo() { //
this.$router.push({ this.$router.push({
path: '/project/terminalTrain/signList', path: '/project/terminalTrain/signList',
query: { query: {