xy 1 year ago
parent 9e882a93a5
commit 97a8556b99

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

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

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

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

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

@ -668,7 +668,9 @@ export default {
this.form[key] = ''
}
}
this.form[key] = data[key];
if (data[key] && data[key] !== 'null' && data[key] !== 'undefined') {
this.form[key] = data[key];
}
}
}
}

@ -75,6 +75,7 @@
}"
:before-upload="beforeUpload"
:on-success="uploadSuccess"
:on-remove="uploadRemove"
multiple
:file-list="fileList"
>
@ -96,6 +97,13 @@
@input="e => form.user_ids = e.map(i => ({ user_id: i }))">
</el-transfer>
</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>
<template #footer>
@ -114,6 +122,11 @@ import { PopupManager } from "element-ui/lib/utils/popup";
import { userListNoAuth as index } from '@/api/common'
export default {
props: {
type: {
type: String,
default: 'add',
required: true
},
isShow: {
type: Boolean,
default: false,
@ -130,6 +143,7 @@ export default {
zIndex: PopupManager.nextZIndex(),
loading: false,
form: {
id: "",
title: "",
start_time: "",
end_time: "",
@ -142,7 +156,20 @@ export default {
},
action: process.env.VUE_APP_UPLOAD_API,
fileList: [],
rules: {},
rules: {
title: [
{ required: true, message: '请填写标题' }
],
start_time: [
{ required: true, message: '请填写开始时间' }
],
end_time: [
{ required: true, message: '请结束标题' }
],
room_id: [
{ required: true, message: '请选择会议室' }
],
},
};
},
computed: {},
@ -150,6 +177,9 @@ export default {
isShow(newVal) {
if(newVal) {
this.zIndex = PopupManager.nextZIndex()
} else {
this.fileList = []
this.$emit('update:type', 'add')
}
}
},
@ -157,6 +187,22 @@ export default {
this.getUsers()
},
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) {
const isLt10M = file.size / 1024 / 1024 < 10
if (!isLt10M) {
@ -165,6 +211,10 @@ export default {
return isLt10M
},
uploadSuccess(response, file, fileList) {
if (response.code) {
fileList.splice(fileList.indexOf(file), 1)
this.$message.warning(response.msg)
}
this.fileList = fileList
},

@ -1,7 +1,7 @@
<template>
<div>
<card-container>
<vxe-toolbar>
<vxe-toolbar export print ref="toolbar">
<template #buttons>
<el-button
icon="el-icon-plus"
@ -76,21 +76,8 @@
field="room_id"
width="180"
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
field="content"
@ -99,15 +86,25 @@
:edit-render="{ name: 'input', attrs: { type: 'text' } }"
/>
<vxe-column
field="user_ids"
field="users"
width="220"
title="参会用户"
:formatter="({ cellValue }) => (cellValue && cellValue instanceof Array) ? cellValue.map(i => i.name).toString() : ''"
:edit-render="{}"
>
<template #edit="{ row }">
<user-picker v-model="row.user_ids" multiple style="width: 100%;" />
</template>
</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">
<template #default="{ row }">
<template v-if="isActiveStatus(row)">
@ -123,7 +120,7 @@
>
</template>
<template v-else>
<el-button size="small" type="primary" @click=""
<el-button size="small" type="primary" @click="examine(row)"
>审核</el-button
>
<el-button size="small" type="warning" @click="editRowEvent(row)"
@ -165,6 +162,7 @@
<add-meeting
ref="AddMeeting"
:rooms="rooms"
:type="isShowType"
:is-show.sync="isShowAdd"
@refresh="getList"
/>
@ -177,6 +175,8 @@ import { destroy, index, save } from "@/api/meeting";
import { index as meetingRoomIndex } from "@/api/meetingRoom";
import AddMeeting from "./components/AddMeeting.vue";
import UserPicker from "@/components/UserPicker/index.vue";
import axios from "axios";
import {getToken} from "@/utils/auth";
export default {
components: {
@ -185,13 +185,16 @@ export default {
},
data() {
return {
examineKey: 0,
isShowAdd: false,
isShowType: 'add',
rooms: [],
loading: false,
select: {
page: 1,
page_size: 20,
show_relation: ['users']
},
total: 0,
allAlign: null,
@ -208,6 +211,7 @@ export default {
meeting_status: "",
files: [],
user_ids: [],
files_details: []
},
};
},
@ -224,7 +228,40 @@ export default {
this.getList();
this.getRooms();
},
mounted() {
this.bindToolbar()
},
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) {
if (this.$refs["table"]) {
this.$refs["table"].setEditRow(row);
@ -279,10 +316,8 @@ export default {
for (const key in form) {
form[key] = row[key];
}
if (!form.password) {
delete form.password;
}
this.loading = true;
form['files'] = this.form['files_details'].map(i => i.response?.id)
await save(form);
await this.getList();
this.loading = false;
@ -314,6 +349,12 @@ export default {
this.loading = false;
}
},
async examine(row) {
this.isShowType = 'examine'
this.$refs['AddMeeting'].getDetail(row)
this.isShowAdd = true
}
},
};
</script>

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

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

Loading…
Cancel
Save