From c58ada7f49aac20b06ea2ebda2cb5c006decf122 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 10 五月 2024 17:01:55 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
---
admin/src/views/meeting/components/OperaRoomsWindow.vue | 275 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 275 insertions(+), 0 deletions(-)
diff --git a/admin/src/views/meeting/components/OperaRoomsWindow.vue b/admin/src/views/meeting/components/OperaRoomsWindow.vue
new file mode 100644
index 0000000..853154d
--- /dev/null
+++ b/admin/src/views/meeting/components/OperaRoomsWindow.vue
@@ -0,0 +1,275 @@
+<template>
+ <GlobalAlertWindow
+ v-loading="isUploading"
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="锛�">
+ <el-form-item label="浼氳瀹ゅ悕绉�" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ヤ細璁鍚嶇О" :maxlength="10" v-trim/>
+ </el-form-item>
+ <el-form-item label="寮�鏀炬椂闂�" prop="timeRange">
+ <el-time-picker
+ is-range
+ value-format="HH:mm"
+ format="HH:mm"
+ v-model="timeRange"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ placeholder="閫夋嫨鏃堕棿鑼冨洿"
+ @change="selectRange"
+ ></el-time-picker>
+ </el-form-item>
+ <el-form-item label="绮掑害鍒嗛挓" prop="intervalTime">
+ <el-input v-model="form.intervalTime" type="number" placeholder="璇疯緭鍏ユ椂闂寸矑搴︼紙鍒嗛挓锛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="瀹圭撼浜烘暟" prop="limitNum">
+ <el-input v-model="form.limitNum" type="number" placeholder="璇疯緭鍏ュ绾充汉鏁�" v-trim/>
+ </el-form-item>
+ <el-form-item label="绠$悊鍛�" prop="sysList">
+ <el-select
+ v-model="form.sysList"
+ filterable
+ multiple
+ clearable
+ placeholder="璇烽�夋嫨閮ㄩ棬"
+ >
+ <!-- :label="`${item.department.name}-${item.realname}`" -->
+ <el-option
+ v-for="item in userList()"
+ :key="item.id"
+ :value="item.id"
+
+ :label="item.department?`${item.department.name}-${item.realname}`:item.realname"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鎻愪緵鏈嶅姟椤圭洰" prop="projectList">
+ <el-checkbox-group v-model="form.projectList">
+ <el-checkbox v-for="project in projectList" :label="project.id" :key="project.id">{{project.name}}</el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ <el-form-item label="浼氳瀹ゅ浘鐗�" prop="imgurl">
+ <UploadAvatarImage
+ :file="{ 'imgurlfull': form.imgFullUrl, 'imgurl': form.imgurl }"
+ :uploadData="uploadData"
+ @uploadSuccess="uploadAvatarSuccess"
+ @uploadEnd="isUploading = false"
+ @uploadBegin="isUploading = true"
+ />
+ </el-form-item>
+ <el-form-item label="浣跨敤椤荤煡" prop="tips">
+ <el-input v-model="form.tips" type="textarea" placeholder="璇疯緭鍏ヤ娇鐢ㄩ』鐭�" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalAlertWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
+import UploadAvatarImage from '@/components/common/UploadAvatarImage'
+import { numRule } from '@/utils/form'
+import { fetchList } from '@/api/meeting/projects'
+export default {
+ name: 'OperaRoomsWindow',
+ extends: BaseOpera,
+ components: { GlobalAlertWindow, UploadAvatarImage },
+ data () {
+ let timeRangeRule = (rule, value, callBack) => {
+ if (!this.form.startTime) {
+ callBack(new Error('璇烽�夋嫨寮�濮嬫椂闂�'))
+ return
+ }
+ if (!this.form.endTime) {
+ callBack(new Error('璇烽�夋嫨缁撴潫鏃堕棿'))
+ return
+ }
+ callBack()
+ }
+ return {
+ isUploading: false,
+ uploadData: {
+ folder: 'projects'
+ },
+ timeRange: ['', ''],
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ sysList: [],
+ projectList: [],
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ name: '',
+ remark: '',
+ startTime: '',
+ endTime: '',
+ limitNum: '',
+ imgurl: '',
+ imgFullUrl: '',
+ tips: '',
+ status: '',
+ intervalTime: ''
+ },
+ user: [],
+ projectList: [],
+ // 楠岃瘉瑙勫垯
+ rules: {
+ name: [
+ { required: true, message: '璇疯緭鍏ヤ細璁鍚嶇О', tigger: 'blur' }
+ ],
+ intervalTime: [
+ { required: true, validator: numRule, message: '璇疯緭鍏ユ椂闂寸矑搴�', tigger: 'blur' }
+ ],
+ timeRange: [
+ { required: true, validator: timeRangeRule, tigger: 'change' }
+ ]
+ }
+ }
+ },
+ inject: ['userList'],
+ created () {
+ this.config({
+ api: '/meeting/rooms',
+ 'field.id': 'id'
+ })
+ // realname: this.filterText
+ fetchList({
+ page: 1,
+ capacity: 9999,
+ model: {},
+ })
+ .then(res => {
+ this.projectList = res.records
+ })
+ },
+ methods: {
+ /**
+ * 鎵撳紑绐楀彛
+ * @title 绐楀彛鏍囬
+ * @target 缂栬緫鐨勫璞�
+ */
+ open (title, target) {
+ this.title = title
+ this.visible = true
+ this.form.imgFullUrl = ''
+ // this.timeRange = ['14:34:55', '14:34:55']
+ // debugger
+ this.timeRange = ['', '']
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ })
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ this.timeRange = [target.startTime, target.endTime]
+ this.form.projectList = this.form.projectList ? target.projectList.map(item => item.projectId) : []
+ this.form.sysList = this.form.sysList ? this.form.sysList.map(item => item.userId) : []
+ // console.log(this.form.imgFullUrl);
+ })
+ },
+ selectRange(v) {
+ // console.log(this.timeRange);
+ console.log(v);
+ this.form.startTime = v[0]
+ this.form.endTime = v[1]
+ console.log(this.form.startTime, this.form.endTime);
+ },
+ // 涓婁紶鍥剧墖
+ uploadAvatarSuccess(file) {
+ this.form.imgurl = file.imgurl;
+ this.form.imgFullUrl = file.imgurlfull;
+ },
+ // 纭鏂板缓
+ __confirmCreate () {
+ this.$refs.form.validate((valid) => {
+ // debugger
+ if (!valid) {
+ return
+ }
+ // console.log(this.form);
+ // debugger
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ let sysList = [...this.form.sysList]
+ sysList = sysList.map(item => {
+ return {userId: item}
+ })
+ let projectList = [...this.form.projectList]
+ projectList = projectList.map(item => {
+ return {projectId: item}
+ })
+ this.api.create({
+ ...this.form,
+ sysList,
+ projectList
+ })
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鏂板缓鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ },
+ // 纭淇敼
+ __confirmEdit () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ console.log(this.form);
+ debugger
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ let sysList = [...this.form.sysList]
+ sysList = sysList.map(item => {
+ return {userId: item}
+ })
+ let projectList = [...this.form.projectList]
+ projectList = projectList.map(item => {
+ return {projectId: item}
+ })
+ this.api.updateById({
+ ...this.form,
+ sysList,
+ projectList
+ })
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('淇敼鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ }
+ },
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/style/alertstyle.scss";
+
+</style>
--
Gitblit v1.9.3