123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- <!-- 录入成绩和证书 -->
- <template>
- <view class="achievement" id="achievement">
- <u-navbar back-text="" title="" back-icon-color="#FFFFFF" :background="{ background: '#3D5D4C' }"
- :border-bottom="false"></u-navbar>
- <u-form :model="form" ref="uForm" class="achievement-form">
- <u-form-item label="考试名称:" label-position="top" :required="true" prop="examName">
- <u-input v-model="form.examName" placeholder="请输入内容" />
- </u-form-item>
- <u-form-item label="成绩:" label-position="top" :required="true">
- <view class="achievement-form-result">
- <u-form-item label="得分" label-width="70" class="item" :border-bottom="false" prop="score">
- <u-input v-model="form.score" border type="number" placeholder="得分" />
- </u-form-item>
- <u-form-item label="满分" label-width="70" class="item" :border-bottom="false" prop="fullScore">
- <u-input v-model="form.fullScore" border type="number" placeholder="满分" />
- </u-form-item>
- </view>
- </u-form-item>
- <u-form-item label="通过日期:" label-position="top" :required="true" prop="passDate">
- <u-input v-model="form.passDate" placeholder="选择通过日期" type="select" @click="dateShow = true" border />
- </u-form-item>
- <u-form-item label="证书等级:" label-position="top" :required="true" prop="gradeName">
- <u-input v-model="form.gradeName" placeholder="选择证书等级" type="select" @click="gradeShow = true" border />
- </u-form-item>
- <!-- 证书等级 -->
- <u-select v-model="gradeShow" :list="gradeList" @confirm="gradeChange"></u-select>
- <u-form-item label="上传证书:" label-position="top" :border-bottom="false">
- <u-form-item label="证书名称" label-width="140" :border-bottom="false">
- <u-input v-model="form.certificateName" placeholder="请输入内容" border />
- </u-form-item>
- <u-form-item label="证书相片" label-width="140" :border-bottom="false">
- <u-upload :action="upload.action" :custom-btn="true" :header="{
- Authorization: `Bearer ${vuex_token}`
- }" :limitType="['png', 'jpg']" :max-count="2" @on-success="uploadSuccess" @on-remove="uploadRemove">
- <view class="upload-button" slot="addBtn">
- <view class="upload-button-icon">
- <u-image src="../../../static/img/upload-add.png" mode="aspectFill" width="62"
- height="64" />
- </view>
- <view>上传相片</view>
- <view class="tips">支持jpg.png格式</view>
- </view>
- </u-upload>
- </u-form-item>
- </u-form-item>
- </u-form>
- <view class="achievement-submit">
- <view class="achievement-submit-btn" @click="submit">提交</view>
- </view>
- <u-calendar v-model="dateShow" mode="date" @change="dateChange"></u-calendar>
- <u-toast ref="uToast" />
- </view>
- </template>
- <script>
- export default {
- data() {
- return {
- form: {
- skillTrainId: '',
- examName: '',
- score: '',
- fullScore: '',
- passDate: '',
- certificateName: '',
- imgUrl: '',
- picList: [],
- grade: '',
- gradeName: ''
- },
- gradeShow: false,
- // 证书等级
- gradeList: [],
- rules: {
- examName: [{
- required: true,
- message: '请输入考试名称',
- // 可以单个或者同时写两个触发验证方式
- trigger: ['change', 'blur'],
- }],
- score: [{
- required: true,
- message: '请输入得分',
- // 可以单个或者同时写两个触发验证方式
- trigger: ['change', 'blur'],
- }],
- fullScore: [{
- required: true,
- message: '请输入满分',
- // 可以单个或者同时写两个触发验证方式
- trigger: ['change', 'blur'],
- }],
- passDate: [{
- required: true,
- message: '请选择通过日期',
- // 可以单个或者同时写两个触发验证方式
- trigger: ['change', 'blur'],
- }],
- gradeName: [{
- required: true,
- message: '请选择证书等级',
- // 可以单个或者同时写两个触发验证方式
- trigger: ['change', 'blur']
- }]
- },
- dateShow: false,
- upload: {
- action: this.config.uploadUrl
- }
- }
- },
- onLoad(page) {
- if (page.id) {
- this.form.skillTrainId = page.id
- }
- },
- onShow() {
- this.getCertificateGrade();
- },
- methods: {
- /**
- * 获取证书等级
- */
- getCertificateGrade() {
- this.$u.api.getDictdataUrl({
- key: 'certificate_grade'
- }).then(res => {
- if (res.code == 200) {
- this.gradeList = res.data.map(item => {
- return {
- ...item,
- value: item.text
- }
- });
- }
- });
- },
- /**
- * 日历选择器选中触发
- * @param {Object} e
- */
- dateChange(e) {
- this.form.passDate = e.result;
- },
- /**
- * 图片上传成功触发
- * @param {Object} res
- */
- uploadSuccess(res) {
- if (res.code === 200) {
- this.form.picList.push(res.data.url)
- } else {
- this.$refs.uToast.show({
- title: res.msg,
- type: 'error'
- })
- }
- },
- /**
- * 移除图片下标
- * @param {Object} index
- */
- uploadRemove(index) {
- this.form.picList.splice(index, 1)
- },
- /**
- * 证书等级确认
- * @param {Object} item
- */
- gradeChange(item) {
- this.form.grade = item[0].value
- this.form.gradeName = item[0].label
- },
- /**
- * 提交
- */
- submit() {
- this.$refs.uForm.validate(valid => {
- if (valid) {
- const form = {
- ...this.form
- }
- form.imgUrl = form.picList.join(',');
- delete form.picList;
- this.$u.api.skillTraining.addCertificateApi(form).then(res => {
- console.log(res)
- if (res.code === 200) {
- this.$refs.uToast.show({
- title: '录入成功!',
- type: 'success',
- back: true
- })
- } else {
- this.$refs.uToast.show({
- title: res.msg,
- type: 'error'
- })
- }
- })
- }
- })
- }
- },
- onReady() {
- this.$refs.uForm.setRules(this.rules);
- }
- }
- </script>
- <style lang="scss" scoped>
- @import './addAchievementCertificate.scss';
- </style>
|