xy 1 year ago
parent 9e882a93a5
commit 97a8556b99

@ -34,9 +34,7 @@ export default {
}, },
methods: { methods: {
open(url) { open(url) {
this.codeUri = `${process.env.VUE_APP_PREVIEW}?url=${encodeURIComponent( this.codeUri = `${window.location.origin}/admin/#/preview?url=${url}`;
new Buffer(url).toString("base64")
)}`;
this.showModal = true; this.showModal = true;
} }
}, },

@ -345,17 +345,17 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab
h( h(
"a", "a",
{ {
attrs: {
href: file.url,
download: file.name,
target: '_blank'
},
class: { class: {
"uploaded-a": file.status === "success", "uploaded-a": file.status === "success",
}, },
style: { style: {
padding: "0 4px", padding: "0 4px",
}, },
on: {
click: _ => {
this.$bus.$emit('online-file', file.url)
}
}
}, },
file.name file.name
), ),
@ -832,17 +832,17 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab
h( h(
"a", "a",
{ {
attrs: {
href: file.url,
download: file.name,
target: '_blank'
},
class: { class: {
"uploaded-a": file.status === "success", "uploaded-a": file.status === "success",
}, },
style: { style: {
padding: "0 4px", padding: "0 4px",
}, },
on: {
click: _ => {
this.$bus.$emit('online-file', file.url)
}
}
}, },
file.name file.name
), ),
@ -1132,16 +1132,17 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab
h( h(
"a", "a",
{ {
attrs: {
href: file.url,
download: file.name,
},
class: { class: {
"uploaded-a": file.status === "success", "uploaded-a": file.status === "success",
}, },
style: { style: {
padding: "0 4px", padding: "0 4px",
}, },
on: {
click: _ => {
this.$bus.$emit('online-file', file.url)
}
}
}, },
file.name file.name
), ),
@ -1384,9 +1385,6 @@ export default function formBuilder(device, info, h, row, pWrite = false,pReadab
h( h(
"a", "a",
{ {
attrs: {
download: file.name,
},
class: { class: {
"uploaded-a": file.status === "success", "uploaded-a": file.status === "success",
}, },

@ -105,6 +105,10 @@ export default {
this.form.renewed_id = '' this.form.renewed_id = ''
}, },
uploadSuccess(response, file, fileList) { uploadSuccess(response, file, fileList) {
if (response.code) {
fileList.splice(fileList.indexOf(file), 1)
this.$message.warning(response.msg)
}
this.fileList = fileList this.fileList = fileList
this.form.renewed_id = this.fileList[0]?.response?.data?.id this.form.renewed_id = this.fileList[0]?.response?.data?.id
}, },

@ -20,8 +20,7 @@
:row-config="{ isHover: true }" :row-config="{ isHover: true }"
:header-cell-style="{ 'white-space': 'wrap' }" :header-cell-style="{ 'white-space': 'wrap' }"
:print-config="{}" :print-config="{}"
:export-config="{ :export-config="{}"
}"
:column-config="{ resizable: true }" :column-config="{ resizable: true }"
:data="tableData.admins"> :data="tableData.admins">
<vxe-column type="seq" width="50" align="center" fixed="left"></vxe-column> <vxe-column type="seq" width="50" align="center" fixed="left"></vxe-column>

@ -38,6 +38,7 @@
}" }"
:before-upload="beforeUpload" :before-upload="beforeUpload"
:on-success="uploadSuccess" :on-success="uploadSuccess"
:on-remove="uploadRemove"
multiple multiple
:file-list="fileList"> :file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button> <el-button size="small" type="primary">点击上传</el-button>
@ -112,6 +113,9 @@ export default {
}, },
methods: { methods: {
getToken, getToken,
uploadRemove(file, fileList) {
this.fileList = fileList
},
beforeUpload(file) { beforeUpload(file) {
const isLt10M = file.size / 1024 / 1024 < 10 const isLt10M = file.size / 1024 / 1024 < 10
if (!isLt10M) { if (!isLt10M) {
@ -120,6 +124,10 @@ export default {
return isLt10M return isLt10M
}, },
uploadSuccess(response, file, fileList) { uploadSuccess(response, file, fileList) {
if (response.code) {
fileList.splice(fileList.indexOf(file), 1)
this.$message.warning(response.msg)
}
this.fileList = fileList this.fileList = fileList
}, },

@ -668,10 +668,12 @@ export default {
this.form[key] = '' this.form[key] = ''
} }
} }
if (data[key] && data[key] !== 'null' && data[key] !== 'undefined') {
this.form[key] = data[key]; this.form[key] = data[key];
} }
} }
} }
}
this.form = Object.assign({}, this.form); this.form = Object.assign({}, this.form);
loading.close(); loading.close();
} catch (err) { } catch (err) {

@ -75,6 +75,7 @@
}" }"
:before-upload="beforeUpload" :before-upload="beforeUpload"
:on-success="uploadSuccess" :on-success="uploadSuccess"
:on-remove="uploadRemove"
multiple multiple
:file-list="fileList" :file-list="fileList"
> >
@ -96,6 +97,13 @@
@input="e => form.user_ids = e.map(i => ({ user_id: i }))"> @input="e => form.user_ids = e.map(i => ({ user_id: i }))">
</el-transfer> </el-transfer>
</el-form-item> </el-form-item>
<el-form-item v-if="type === 'examine'" label="会议状态" prop="meeting_status">
<el-select v-model="form.meeting_status">
<el-option label="待审核" :value="0"></el-option>
<el-option label="通过" :value="1"></el-option>
<el-option label="不通过" :value="2"></el-option>
</el-select>
</el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
@ -114,6 +122,11 @@ import { PopupManager } from "element-ui/lib/utils/popup";
import { userListNoAuth as index } from '@/api/common' import { userListNoAuth as index } from '@/api/common'
export default { export default {
props: { props: {
type: {
type: String,
default: 'add',
required: true
},
isShow: { isShow: {
type: Boolean, type: Boolean,
default: false, default: false,
@ -130,6 +143,7 @@ export default {
zIndex: PopupManager.nextZIndex(), zIndex: PopupManager.nextZIndex(),
loading: false, loading: false,
form: { form: {
id: "",
title: "", title: "",
start_time: "", start_time: "",
end_time: "", end_time: "",
@ -142,7 +156,20 @@ export default {
}, },
action: process.env.VUE_APP_UPLOAD_API, action: process.env.VUE_APP_UPLOAD_API,
fileList: [], fileList: [],
rules: {}, rules: {
title: [
{ required: true, message: '请填写标题' }
],
start_time: [
{ required: true, message: '请填写开始时间' }
],
end_time: [
{ required: true, message: '请结束标题' }
],
room_id: [
{ required: true, message: '请选择会议室' }
],
},
}; };
}, },
computed: {}, computed: {},
@ -150,6 +177,9 @@ export default {
isShow(newVal) { isShow(newVal) {
if(newVal) { if(newVal) {
this.zIndex = PopupManager.nextZIndex() this.zIndex = PopupManager.nextZIndex()
} else {
this.fileList = []
this.$emit('update:type', 'add')
} }
} }
}, },
@ -157,6 +187,22 @@ export default {
this.getUsers() this.getUsers()
}, },
methods: { methods: {
getDetail (data) {
for (let key in this.form) {
this.form[key] = data[key]
}
this.form.user_ids = data['users']?.map(i => ({ user_id: i.id }))
this.fileList = data['files_details']?.map(i => ({
name: i.original_name,
url: i.url,
response: {
data: i
}
})) ?? []
},
uploadRemove(file, fileList) {
this.fileList = fileList
},
beforeUpload(file) { beforeUpload(file) {
const isLt10M = file.size / 1024 / 1024 < 10 const isLt10M = file.size / 1024 / 1024 < 10
if (!isLt10M) { if (!isLt10M) {
@ -165,6 +211,10 @@ export default {
return isLt10M return isLt10M
}, },
uploadSuccess(response, file, fileList) { uploadSuccess(response, file, fileList) {
if (response.code) {
fileList.splice(fileList.indexOf(file), 1)
this.$message.warning(response.msg)
}
this.fileList = fileList this.fileList = fileList
}, },

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<card-container> <card-container>
<vxe-toolbar> <vxe-toolbar export print ref="toolbar">
<template #buttons> <template #buttons>
<el-button <el-button
icon="el-icon-plus" icon="el-icon-plus"
@ -76,21 +76,8 @@
field="room_id" field="room_id"
width="180" width="180"
title="会议室" title="会议室"
:edit-render="{}" :edit-render="{ name: 'select', options: rooms, optionProps: { value: 'id', label: 'name' } }"
>
<template #edit="{ row }">
<el-select
style="width: 100%;"
v-model="row.room_id"
> >
<el-option
v-for="item in rooms"
:key="item.id"
:value="item.id"
:label="item.name"
></el-option>
</el-select>
</template>
</vxe-column> </vxe-column>
<vxe-column <vxe-column
field="content" field="content"
@ -99,15 +86,25 @@
:edit-render="{ name: 'input', attrs: { type: 'text' } }" :edit-render="{ name: 'input', attrs: { type: 'text' } }"
/> />
<vxe-column <vxe-column
field="user_ids" field="users"
width="220" width="220"
title="参会用户" title="参会用户"
:formatter="({ cellValue }) => (cellValue && cellValue instanceof Array) ? cellValue.map(i => i.name).toString() : ''"
:edit-render="{}" :edit-render="{}"
> >
<template #edit="{ row }"> <template #edit="{ row }">
<user-picker v-model="row.user_ids" multiple style="width: 100%;" /> <user-picker v-model="row.user_ids" multiple style="width: 100%;" />
</template> </template>
</vxe-column> </vxe-column>
<vxe-column field="files_details" title="附件" min-width="180" header-align="center" align="left" :edit-render="{}">
<template #default="{ row }">
<vxe-upload v-model="row.files_details" readonly progress-text="{percent}%" :more-config="{ maxCount: 1, layout: 'horizontal' }" :show-button-text="false" />
</template>
<template #edit="{ row }">
<vxe-upload v-model="row.files_details" progress-text="{percent}%" :more-config="{ maxCount: 1, layout: 'horizontal' }" :limit-size="20" :show-button-text="false" :upload-method="({file}) => uploadMethod(file, row)" />
</template>
</vxe-column>
<vxe-column field="meeting_status" title="审核状态" align="center" :formatter="({ cellValue }) => ['待审核','通过','未通过'][cellValue]" width="100" />
<vxe-column field="operate" title="操作" min-width="220"> <vxe-column field="operate" title="操作" min-width="220">
<template #default="{ row }"> <template #default="{ row }">
<template v-if="isActiveStatus(row)"> <template v-if="isActiveStatus(row)">
@ -123,7 +120,7 @@
> >
</template> </template>
<template v-else> <template v-else>
<el-button size="small" type="primary" @click="" <el-button size="small" type="primary" @click="examine(row)"
>审核</el-button >审核</el-button
> >
<el-button size="small" type="warning" @click="editRowEvent(row)" <el-button size="small" type="warning" @click="editRowEvent(row)"
@ -165,6 +162,7 @@
<add-meeting <add-meeting
ref="AddMeeting" ref="AddMeeting"
:rooms="rooms" :rooms="rooms"
:type="isShowType"
:is-show.sync="isShowAdd" :is-show.sync="isShowAdd"
@refresh="getList" @refresh="getList"
/> />
@ -177,6 +175,8 @@ import { destroy, index, save } from "@/api/meeting";
import { index as meetingRoomIndex } from "@/api/meetingRoom"; import { index as meetingRoomIndex } from "@/api/meetingRoom";
import AddMeeting from "./components/AddMeeting.vue"; import AddMeeting from "./components/AddMeeting.vue";
import UserPicker from "@/components/UserPicker/index.vue"; import UserPicker from "@/components/UserPicker/index.vue";
import axios from "axios";
import {getToken} from "@/utils/auth";
export default { export default {
components: { components: {
@ -185,13 +185,16 @@ export default {
}, },
data() { data() {
return { return {
examineKey: 0,
isShowAdd: false, isShowAdd: false,
isShowType: 'add',
rooms: [], rooms: [],
loading: false, loading: false,
select: { select: {
page: 1, page: 1,
page_size: 20, page_size: 20,
show_relation: ['users']
}, },
total: 0, total: 0,
allAlign: null, allAlign: null,
@ -208,6 +211,7 @@ export default {
meeting_status: "", meeting_status: "",
files: [], files: [],
user_ids: [], user_ids: [],
files_details: []
}, },
}; };
}, },
@ -224,7 +228,40 @@ export default {
this.getList(); this.getList();
this.getRooms(); this.getRooms();
}, },
mounted() {
this.bindToolbar()
},
methods: { methods: {
uploadMethod(file, row) {
const formData = new FormData()
formData.append('file', file)
return axios.post(process.env.VUE_APP_UPLOAD_API, formData, {
headers: {
Authorization: `Bearer ${getToken()}`,
}
}).then((response) => {
if (response.status === 200 && !response.data.code) {
if (!(this.form['files_details'] instanceof Array)) {
this.form['files_details'] = []
}
this.form['files_details'].push({
response: response.data.data,
name: response.data.data.original_name,
url: response.data.data.url
})
} else {
this.$message.error("上传失败")
}
})
},
bindToolbar() {
this.$nextTick(() => {
if (this.$refs["table"] && this.$refs["toolbar"]) {
this.$refs["table"].connect(this.$refs["toolbar"]);
}
});
},
editRowEvent(row) { editRowEvent(row) {
if (this.$refs["table"]) { if (this.$refs["table"]) {
this.$refs["table"].setEditRow(row); this.$refs["table"].setEditRow(row);
@ -279,10 +316,8 @@ export default {
for (const key in form) { for (const key in form) {
form[key] = row[key]; form[key] = row[key];
} }
if (!form.password) {
delete form.password;
}
this.loading = true; this.loading = true;
form['files'] = this.form['files_details'].map(i => i.response?.id)
await save(form); await save(form);
await this.getList(); await this.getList();
this.loading = false; this.loading = false;
@ -314,6 +349,12 @@ export default {
this.loading = false; this.loading = false;
} }
}, },
async examine(row) {
this.isShowType = 'examine'
this.$refs['AddMeeting'].getDetail(row)
this.isShowAdd = true
}
}, },
}; };
</script> </script>

@ -49,6 +49,7 @@
}" }"
:before-upload="beforeUpload" :before-upload="beforeUpload"
:on-success="uploadSuccess" :on-success="uploadSuccess"
:on-remove="uploadRemove"
multiple multiple
:file-list="fileList" :file-list="fileList"
> >
@ -150,6 +151,9 @@ export default {
this.getUsers() this.getUsers()
}, },
methods: { methods: {
uploadRemove(file, fileList) {
this.fileList = fileList
},
beforeUpload(file) { beforeUpload(file) {
const isLt10M = file.size / 1024 / 1024 < 10 const isLt10M = file.size / 1024 / 1024 < 10
if (!isLt10M) { if (!isLt10M) {
@ -158,6 +162,10 @@ export default {
return isLt10M return isLt10M
}, },
uploadSuccess(response, file, fileList) { uploadSuccess(response, file, fileList) {
if (response.code) {
fileList.splice(fileList.indexOf(file), 1)
this.$message.warning(response.msg)
}
this.fileList = fileList this.fileList = fileList
}, },

@ -143,6 +143,10 @@ export default {
this.form.photo_file_id = '' this.form.photo_file_id = ''
}, },
photoSuccess(response, file, fileList) { photoSuccess(response, file, fileList) {
if (response.code) {
fileList.splice(fileList.indexOf(file), 1)
this.$message.warning(response.msg)
}
this.fileList = fileList this.fileList = fileList
this.form.photo_file_id = this.fileList[0]?.response?.data?.id this.form.photo_file_id = this.fileList[0]?.response?.data?.id
}, },

Loading…
Cancel
Save