123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290 |
- <template>
- <el-dialog
- :close-on-click-modal="false"
- :close-on-press-escape="false"
- :title="title"
- :append-to-body="true"
- :visible.sync="isVisible"
- width="500px"
- top="50px"
- >
- <el-form ref="form" :model="tenant" :rules="rules" label-position="right" label-width="130px">
- <el-form-item :label='$t("calssSchedule.form.deptUsers")+":"' prop="userList">
- <el-cascader
- v-model="tenant.userList"
- key="1"
- :options="applyList"
- :props="{ multiple: true, checkStrictly: true , emitPath: false, expandTrigger: 'click'}"
- :show-all-levels="false"
- filterable
- clearable
- :placeholder='$t("common.pleaseSelect")'
- style="width: 100%;"
- >
- </el-cascader>
- </el-form-item>
- <el-form-item :label='$t("calssSchedule.form.setDate")+":"' prop="dateList">
- <el-date-picker :picker-options="pickerOptions" v-model="tenant.dateList" type="dates" value-format="yyyy-MM-dd" :placeholder='$t("common.pleaseSelect")' style="width: 100%;"></el-date-picker>
- </el-form-item>
- <el-form-item :label='$t("calssSchedule.form.setClass")+":"' prop="frequencyId">
- <template>
- <el-select v-model="tenant.frequencyId" :placeholder='$t("common.pleaseSelect")' style="width: 100%;">
- <el-option
- v-for="item in classesList"
- :key="item.id"
- :label="item.name.data"
- :value="item.id">
- </el-option>
- </el-select>
- </template>
- </el-form-item>
- </el-form>
- <div slot="footer" class="dialog-footer">
- <el-button plain type="warning" @click="isVisible = false">{{ $t('common.cancel') }}</el-button>
- <el-button plain type="primary" :disabled="confirmDisabled" @click="submitForm">{{ $t('common.confirm') }}</el-button>
- </div>
- </el-dialog>
- </template>
- <script>
- // 【设置班表】-API
- import settingClassSchedulApi from "@/api/classScheduleMgr/settingClassSchedul"
- // 【班次管理】-API
- import classesMgrApi from "@/api/classScheduleMgr/classesMgr"
- // 【部门组织】-API
- import orgApi from "@/api/Org"
- export default {
- name: 'TenantEdit',
- props: {
- dialogVisible: {
- type: Boolean,
- default: false
- },
- title: {
- type: String,
- default: ''
- }
- },
- data () {
- return {
- pickerOptions: {
- disabledDate: (time) => {
- // return time.getTime() < Date.now() - 86400000;
- return time.getTime() < new Date(this.tenant.monthBeginDay).getTime() || time.getTime() > new Date(this.tenant.monthLastDay).getTime()
- },
- },
- type: 'add',
- tenant: this.initTenant(),
- screenWidth: 0,
- width: this.initWidth(),
- confirmDisabled: false,
- classesList: [], // 班次设置,下拉数据
- applyList: [],
- applyCheckbox: [], // 【更换班表-申请人】
- updateCheckbox: [], // 【更换班表-更换人】
- dicts:{
- NATION: {}
- },
- roles: [],
- rules: {
- userList: [
- { required: true, message: this.$t("rules.require"), trigger: 'change' }
- ],
- date: [
- { required: true, message: this.$t("rules.require"), trigger: 'change' }
- ],
- frequencyId: [
- { required: true, message: this.$t("rules.require"), trigger: 'change' }
- ]
- }
- }
- },
- // 实例已经在内存中创建好,此时data和methods已将ok,如果要操作data中的数据或是调用methods中的方法,最早只能在created中操作
- created() {
- // [部门人员]的获取
- // this.applyList = this.$constWKS.CASCADERLIST
- this.getDeptUser()
- // [设置班次]的获取
- this.getClassesList()
- },
- computed: {
- isVisible: {
- get () {
- return this.dialogVisible
- },
- set () {
- this.close()
- this.reset()
- }
- }
- },
- mounted () {
- window.onresize = () => {
- return (() => {
- this.width = this.initWidth()
- })()
- }
- },
- methods: {
- initTenant () {
- return {
- frequencyId: '',
- dateList: [],
- userList: [],
- monthBeginDay: '',
- monthLastDay: '',
- }
- },
- initWidth () {
- this.screenWidth = document.body.clientWidth
- if (this.screenWidth < 991) {
- return '90%'
- } else if (this.screenWidth < 1400) {
- return '45%'
- } else {
- return '800px'
- }
- },
- setTenant (val, dicts,monthBeginDay,monthLastDay) {
- if(val){
- this.tenant = { ...val }
- }
- this.tenant.monthBeginDay = monthBeginDay
- this.tenant.monthLastDay = monthLastDay
- // 字典表
- this.dicts = dicts
- },
- close () {
- this.$emit('close')
- },
- reset () {
- // 先清除校验,再清除表单,不然有奇怪的bug
- this.$refs.form.clearValidate()
- this.$refs.form.resetFields()
- this.tenant = this.initTenant()
- },
- submitForm () {
- //console.log("Form数据:", this.tenant)
- //return false
- this.$refs.form.validate((valid) => {
- if (valid) {
- this.confirmDisabled = true
- if (this.type === 'add') {
- this.save()
- } else {
- this.update()
- }
- } else {
- return false
- }
- })
- },
- save () {
- settingClassSchedulApi.setSchedule(this.tenant)
- .then((response) => {
- const res = response.data
- if (res.isSuccess) {
- this.isVisible = false
- this.$message({
- message: this.$t('tips.createSuccess'),
- type: 'success'
- })
- // 通知列表
- this.$emit("success");
- // 通知列表-并关闭弹出框
- this.$emit("close");
- }
- }).finally(() => {
- this.confirmDisabled = false
- return true
- })
- },
- update () {
- settingClassSchedulApi.update(this.tenant)
- .then((response) => {
- const res = response.data
- if (res.isSuccess) {
- this.isVisible = false
- this.$message({
- message: this.$t('tips.updateSuccess'),
- type: 'success'
- })
- // 通知列表
- this.$emit("success");
- // 通知列表-并关闭弹出框
- this.$emit("close");
- }
- }).finally(() => {
- this.confirmDisabled = false
- return true
- })
- },
- // 【更换班表】-列表数据
- applyClassList(flag, val){
- classesMgrApi.getListById({userId: ''}).then(res => {
- res = res.data
- console.log("【更换班表】-列表数据: ", res)
- if (res.isSuccess) {
- // 如果是【申请人-更换班表】
- if(flag){
- this.applyCheckbox = res.data
- }else{ // 如果是【更换人-更换班表】
- this.updateCheckbox = res.data
- }
- }
- })
- },
- // [设置班次]下拉的数据
- getClassesList(){
- classesMgrApi.getList({}).then(res => {
- res = res.data
- console.log("【设置班次】-列表数据: ", res)
- if (res.isSuccess) {
- this.classesList = res.data
- }
- })
- },
- // 【部门人员】-级联数据
- getDeptUser(){
- orgApi.getDeptUser({}).then(res => {
- res = res.data
- // console.log("【部门人员】-级联数据: ", res)
- if(res.isSuccess){
- this.applyList = res.data
- }
- })
- }
- }
- }
- </script>
- <style lang="scss" >
- .avatar-uploader .el-upload {
- border: 1px dashed #d9d9d9;
- border-radius: 6px;
- cursor: pointer;
- position: relative;
- overflow: hidden;
- }
- .avatar-uploader .el-upload:hover {
- border-color: #409eff;
- }
- .avatar-uploader-icon {
- font-size: 28px;
- color: #8c939d;
- width: 100px;
- height: 100px;
- line-height: 100px;
- text-align: center;
- }
- .avatar {
- width: 100px;
- height: 100px;
- display: block;
- }
- .checkUsed{
- display: inline-block;
- margin-left: 10px;
- color: #1890ff;
- }
- </style>
|