Commit c93799f2 authored by “yiyousong”'s avatar “yiyousong”

prefr:修改工作人员图片上传

parent c228969d
......@@ -395,7 +395,6 @@ export default {
let matterId = this.$route.query.matterId;
this.getMatterInfo(matterId);
}
console.log(this.matterDict);
this.getDeptListData();
},
methods: {
......
......@@ -23,9 +23,11 @@
:data-source="tableData"
:rowKey="(record) => record.id"
>
<!-- 需要 -->
<template slot="num" slot-scope="text, record, index">
{{ (current - 1) * size + index + 1 }}
</template>
<!-- 查看详情 -->
<template slot="more" slot-scope="text">
<a class="look-more" @click="lookMore(text)">查看详情</a>
</template>
......
......@@ -5,6 +5,7 @@
@cancel="handleClose"
:title="title"
@ok="handleOk"
:maskClosable="false"
>
<template slot="footer">
<a-button @click="handleInit">重置</a-button>
......
<template>
<div class="website">
<!-- 右边 -->
<div class="right ff">
<div class="person_message">工作人员管理</div>
<div class="person_chang">
<div class="person_gruop">选择部门:</div>
<div class="person_gruop1">
<div class="dept-select flex aic">
<div
class="item dept-select-item1"
:class="{ active: deptSearch === '' }"
@click="handleAllDept"
>
全部
</div>
<div
v-show="deptSearch !== ''"
class="item dept-select-item2 active"
>
{{ curDept }}
</div>
<a-popover arrowPointAtCenter placement="rightTop" title="部门列表">
<template slot="content">
<div class="dept-list" v-if="deptData.length">
<a-radio-group v-model="deptSearch" @change="changeDept">
<a-radio
:data-name="v.name"
v-for="v in deptData"
:key="v.id"
:value="v.id"
>
{{ v.name }}
</a-radio>
</a-radio-group>
</div>
<a-empty style="margin-top: 20px" :image="simpleImage" v-else />
</template>
<div class="item dept-select-item3">
<a-icon type="double-right" />
<a-spin tip="正在上传中..." :spinning="spinning">
<div class="website">
<!-- 右边 -->
<div class="right ff">
<div class="person_message">工作人员管理</div>
<div class="person_chang">
<div class="person_gruop">选择部门:</div>
<div class="person_gruop1">
<div class="dept-select flex aic">
<div
class="item dept-select-item1"
:class="{ active: deptSearch === '' }"
@click="handleAllDept"
>
全部
</div>
</a-popover>
</div>
<!-- <a-radio-group
<div
v-show="deptSearch !== ''"
class="item dept-select-item2 active"
>
{{ curDept }}
</div>
<a-popover
arrowPointAtCenter
placement="rightTop"
title="部门列表"
>
<template slot="content">
<div class="dept-list" v-if="deptData.length">
<a-radio-group v-model="deptSearch" @change="changeDept">
<a-radio
:data-name="v.name"
v-for="v in deptData"
:key="v.id"
:value="v.id"
>
{{ v.name }}
</a-radio>
</a-radio-group>
</div>
<a-empty
style="margin-top: 20px"
:image="simpleImage"
v-else
/>
</template>
<div class="item dept-select-item3">
<a-icon type="double-right" />
</div>
</a-popover>
</div>
<!-- <a-radio-group
button-style="solid"
v-model="deptSearch"
@change="handleDeptSearch"
......@@ -52,51 +61,59 @@
v.name
}}</a-radio-button>
</a-radio-group> -->
</div>
</div>
</div>
<div class="person_chang">
<div class="person_window">选择窗口:</div>
<div class="person_window1">
<div class="dept-select flex aic">
<div
class="item dept-select-item1"
:class="{ active: windowSearch === '' }"
@click="handleAllWindow"
>
全部
</div>
<div
v-show="windowSearch !== ''"
class="item dept-select-item2 active"
>
{{ curWindow }}
</div>
<a-popover arrowPointAtCenter placement="rightTop" title="窗口列表">
<template slot="content">
<div class="dept-list" v-if="windowData.length">
<a-radio-group
v-model="windowSearch"
@change="handleWindowSearch"
>
<a-radio
:data-name="v.name"
v-for="v in windowData"
:key="v.id"
:value="v.id"
<div class="person_chang">
<div class="person_window">选择窗口:</div>
<div class="person_window1">
<div class="dept-select flex aic">
<div
class="item dept-select-item1"
:class="{ active: windowSearch === '' }"
@click="handleAllWindow"
>
全部
</div>
<div
v-show="windowSearch !== ''"
class="item dept-select-item2 active"
>
{{ curWindow }}
</div>
<a-popover
arrowPointAtCenter
placement="rightTop"
title="窗口列表"
>
<template slot="content">
<div class="dept-list" v-if="windowData.length">
<a-radio-group
v-model="windowSearch"
@change="handleWindowSearch"
>
{{ v.name }}
</a-radio>
</a-radio-group>
</div>
<a-empty style="margin-top: 20px" :image="simpleImage" v-else />
</template>
<a-radio
:data-name="v.name"
v-for="v in windowData"
:key="v.id"
:value="v.id"
>
{{ v.name }}
</a-radio>
</a-radio-group>
</div>
<a-empty
style="margin-top: 20px"
:image="simpleImage"
v-else
/>
</template>
<div class="item dept-select-item3">
<a-icon type="double-right" />
</div>
</a-popover>
</div>
<!-- <a-radio-group
<div class="item dept-select-item3">
<a-icon type="double-right" />
</div>
</a-popover>
</div>
<!-- <a-radio-group
button-style="solid"
v-model="windowSearch"
@change="handleWindowSearch"
......@@ -106,129 +123,161 @@
v.name
}}</a-radio-button>
</a-radio-group> -->
</div>
</div>
</div>
<div class="on btn">
<div>
<a-button type="primary" @click="showModal">新增人员</a-button>
<a-dropdown>
<a-menu slot="overlay">
<a-menu-item key="1">
<a style="color: #1890ff" @click="handleUpload"> 批量导入 </a>
</a-menu-item>
<a-menu-item key="2">
<a style="color: #1890ff" @click="handleDownload"> 模板下载</a>
</a-menu-item>
<a-menu-item key="3">
<a style="color: #1890ff" @click="handleUploadImg">
批量导入照片
</a>
</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px">
更多操作 <a-icon type="down" />
</a-button>
</a-dropdown>
<div class="on btn">
<div>
<a-button type="primary" @click="showModal">新增人员</a-button>
<a-dropdown>
<a-menu slot="overlay">
<a-menu-item key="1">
<a-upload
name="file"
:multiple="false"
:action="api + 'base/workman/importData'"
:showUploadList="false"
:headers="headers"
@change="handleChange"
:data="{
siteId,
deptId: deptSearch,
windowId: windowSearch,
}"
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
>
<div style="color: #1890ff">批量导入</div>
</a-upload>
<!-- <a style="color: #1890ff" @click="handleUpload"> 批量导入 </a> -->
</a-menu-item>
<a-menu-item key="2">
<a style="color: #1890ff" @click="handleDownload">
模板下载</a
>
</a-menu-item>
<a-menu-item key="3">
<a-upload
name="file"
:multiple="false"
:action="api + 'base/file/commonupload'"
:showUploadList="false"
:headers="headers"
@change="handleChangeImg"
accept="application/x-zip-compressed"
>
<div style="color: #1890ff">批量导入照片</div>
</a-upload>
<!-- <a style="color: #1890ff" @click="handleUploadImg">
批量导入照片
</a> -->
</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px">
更多操作 <a-icon type="down" />
</a-button>
</a-dropdown>
</div>
<div class="in">
<a-input-search
placeholder="请输入姓名或者工号"
enter-button="搜索"
allowClear
@search="onSearch"
/>
</div>
</div>
<div class="in">
<a-input-search
placeholder="请输入姓名或者工号"
enter-button="搜索"
allowClear
@search="onSearch"
/>
<div class="table-content">
<!-- 表格 -->
<a-table
:pagination="{
showTotal: (total) => `共 ${total} 条`,
current: page,
total: total,
pageSize: size,
showSizeChanger: true,
showQuickJumper: true,
pageSizeOptions: pageSizeOptions,
onChange: handlePagination,
onShowSizeChange: showSizeChange,
}"
:scroll="{ y: 450 }"
:loading="loading"
:columns="columns"
:data-source="WorkmanData"
:rowKey="(record) => record.id"
>
<a slot="name" slot-scope="text">{{ text }}</a>
<span slot="num" slot-scope="text, record, index">{{
(page - 1) * size + index + 1
}}</span>
<!-- 照片 -->
<template slot="pic" slot-scope="text">
<img
v-if="text.photoPath"
:src="api + text.photoPath"
class="pht"
/>
<span v-else>--</span>
</template>
<!-- 电话 -->
<template slot="mobile" slot-scope="text">
<span>{{ text.mobile ? text.mobile : "--" }}</span>
</template>
<!-- 称号 -->
<template slot="dangyuan" slot-scope="text">
<div v-if="text.dangyuan === 0 || text.dangyuan">
<span v-if="text.dangyuan === 99">{{ text.dangyuanext }}</span>
<span v-else>{{ designation(text.dangyuan) }}</span>
</div>
<span v-else>--</span>
</template>
<!-- 创建时间 -->
<template slot="windowName" slot-scope="text">
{{ text.windowName ? text.windowName : "--" }}
</template>
<!-- 创建时间 -->
<template slot="time" slot-scope="text">
{{ text.createTime | dateFormat }}
</template>
<!-- 最后登录时间 -->
<template slot="logintime" slot-scope="text">
<span v-if="text.logintime">{{
text.logintime | dateFormat
}}</span>
<span v-else>--</span>
</template>
<!-- 操作 -->
<span slot="action" slot-scope="text">
<a-space>
<a class="edit" type="primary" @click="editModal(text)">编辑</a>
<a class="edit-pwd" type="primary" @click="changePwd(text)"
>修改密码</a
>
<a class="delet" @click="handleDel(text.id)">删除</a>
</a-space>
</span>
</a-table>
</div>
</div>
<div class="table-content">
<!-- 表格 -->
<a-table
:pagination="{
showTotal: (total) => `共 ${total} 条`,
current: page,
total: total,
pageSize: size,
showSizeChanger: true,
showQuickJumper: true,
pageSizeOptions: pageSizeOptions,
onChange: handlePagination,
onShowSizeChange: showSizeChange,
}"
:scroll="{ y: 450 }"
:loading="loading"
:columns="columns"
:data-source="WorkmanData"
:rowKey="(record) => record.id"
>
<a slot="name" slot-scope="text">{{ text }}</a>
<span slot="num" slot-scope="text, record, index">{{
(page - 1) * size + index + 1
}}</span>
<!-- 照片 -->
<template slot="pic" slot-scope="text">
<img
v-if="text.photoPath"
:src="api + text.photoPath"
class="pht"
/>
<span v-else>--</span>
</template>
<!-- 电话 -->
<template slot="mobile" slot-scope="text">
<span>{{ text.mobile ? text.mobile : "--" }}</span>
</template>
<!-- 称号 -->
<template slot="dangyuan" slot-scope="text">
<div v-if="text.dangyuan === 0 || text.dangyuan">
<span v-if="text.dangyuan === 99">{{ text.dangyuanext }}</span>
<span v-else>{{ designation(text.dangyuan) }}</span>
</div>
<span v-else>--</span>
</template>
<!-- 创建时间 -->
<template slot="windowName" slot-scope="text">
{{ text.windowName ? text.windowName : "--" }}
</template>
<!-- 创建时间 -->
<template slot="time" slot-scope="text">
{{ text.createTime | dateFormat }}
</template>
<!-- 最后登录时间 -->
<template slot="logintime" slot-scope="text">
<span v-if="text.logintime">{{ text.logintime | dateFormat }}</span>
<span v-else>--</span>
</template>
<!-- 操作 -->
<span slot="action" slot-scope="text">
<a-space>
<a class="edit" type="primary" @click="editModal(text)">编辑</a>
<a class="edit-pwd" type="primary" @click="changePwd(text)"
>修改密码</a
>
<a class="delet" @click="handleDel(text.id)">删除</a>
</a-space>
</span>
</a-table>
</div>
<!-- 新增工作人员 -->
<addpersonnel
ref="addpersonnel"
:diptData="deptData"
:visibleAll.sync="visibleAll"
:designationDict="designationDict"
:politicalDict="politicalDict"
></addpersonnel>
<!-- 编辑工作人员 -->
<EditPersonel
ref="EditPersonel"
:editVisible.sync="editVisible"
:designationDict="designationDict"
:politicalDict="politicalDict"
:diptData="deptData"
></EditPersonel>
<!-- 修改密码 -->
<EditPwd ref="EditPwd" :visibleEditPwd.sync="visibleEditPwd"></EditPwd>
</div>
<!-- 新增工作人员 -->
<addpersonnel
ref="addpersonnel"
:diptData="deptData"
:visibleAll.sync="visibleAll"
:designationDict="designationDict"
:politicalDict="politicalDict"
></addpersonnel>
<!-- 编辑工作人员 -->
<EditPersonel
ref="EditPersonel"
:editVisible.sync="editVisible"
:designationDict="designationDict"
:politicalDict="politicalDict"
:diptData="deptData"
></EditPersonel>
<!-- 修改密码 -->
<EditPwd ref="EditPwd" :visibleEditPwd.sync="visibleEditPwd"></EditPwd>
</div>
</a-spin>
</template>
<script>
......@@ -244,10 +293,10 @@ import {
getWorkmanList,
delWorkman,
downLoadTemplate,
uploadFile,
// uploadFile,
uploadAllImg,
// editWorkman,
importData,
// importData,
} from "@/services/dept";
const columns = [
......@@ -325,6 +374,10 @@ export default {
},
data() {
return {
headers: {
Authorization: local.getLocal("token"),
},
spinning: false,
columns,
simpleImage: Empty.PRESENTED_IMAGE_SIMPLE,
loading: false,
......@@ -485,9 +538,9 @@ export default {
this.getWorkmanData();
},
// 导入
handleUpload() {
this.importFile();
},
// handleUpload() {
// this.importFile();
// },
// 批量导入工作人员模板下载
async handleDownload() {
......@@ -506,70 +559,104 @@ export default {
},
//导入文件
importFile() {
let that = this;
let input = document.createElement("input");
input.setAttribute("type", "file");
input.setAttribute(
"accept",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
);
input.style.display = "none";
input.addEventListener("change", () => {
if (input.files && input.files.length > 0) {
that.uploadFile(input.files[0]);
}
});
document.body.appendChild(input);
input.click();
document.body.removeChild(input);
},
// importFile() {
// let that = this;
// let input = document.createElement("input");
// input.setAttribute("type", "file");
// input.setAttribute(
// "accept",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
// );
// input.style.display = "none";
// input.addEventListener("change", () => {
// if (input.files && input.files.length > 0) {
// that.uploadFile(input.files[0]);
// }
// });
// document.body.appendChild(input);
// input.click();
// document.body.removeChild(input);
// },
//上传文件
async uploadFile(file) {
let formData = new FormData();
formData.append("file", file);
formData.append("siteId", this.siteId);
formData.append("deptId", this.deptSearch);
formData.append("windowId", this.windowSearch);
let config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
let res = await importData(formData, config);
let { code, msg } = res.data;
if (code === 1) {
this.$message.success(msg);
this.page = 1;
this.getWorkmanData();
// async uploadFile(file) {
// let formData = new FormData();
// formData.append("file", file);
// formData.append("siteId", this.siteId);
// formData.append("deptId", this.deptSearch);
// formData.append("windowId", this.windowSearch);
// let config = {
// headers: {
// "Content-Type": "multipart/form-data",
// },
// };
// let res = await importData(formData, config);
// let { code, msg } = res.data;
// if (code === 1) {
// this.$message.success(msg);
// this.page = 1;
// this.getWorkmanData();
// }
// },
// 批量上传工作人员
handleChange({ file }) {
this.spinning = true;
if (file.status === "done") {
let { code, msg } = file.response;
if (code == 1) {
this.$message.success(msg);
this.getWorkmanData();
} else {
this.$message.error(msg);
}
this.spinning = false;
}
},
// 批量导入照片
handleUploadImg() {
let input = document.createElement("input");
input.setAttribute("type", "file");
input.setAttribute("accept", "application/x-zip-compressed");
input.style.display = "none";
input.addEventListener("change", async () => {
if (input.files && input.files.length > 0) {
let file = input.files[0];
let formData = new FormData();
formData.append("file", file);
let res = await uploadFile(formData);
// handleUploadImg() {
// let input = document.createElement("input");
// input.setAttribute("type", "file");
// input.setAttribute("accept", "application/x-zip-compressed");
// input.style.display = "none";
// input.addEventListener("change", async () => {
// if (input.files && input.files.length > 0) {
// let file = input.files[0];
// let formData = new FormData();
// formData.append("file", file);
// let res = await uploadFile(formData);
// if (res.data.code == 1) {
// let result = await uploadAllImg({
// filePath: res.data.url,
// });
// if (result.data.code === 1) {
// this.$message.success(result.data.msg);
// }
// }
// }
// });
// document.body.appendChild(input);
// input.click();
// document.body.removeChild(input);
// },
// 批量导入照片
async handleChangeImg({ file }) {
this.spinning = true;
if (file.status === "done") {
let { code, msg } = file.response;
if (code == 1) {
let url = file.response.url;
let res = await uploadAllImg({
filePath: url,
});
if (res.data.code == 1) {
let result = await uploadAllImg({
filePath: res.data.url,
});
if (result.data.code === 1) {
this.$message.success(result.data.msg);
}
this.$message.success(res.data.msg);
// this.spinning = false;
}
} else {
this.$message.error(msg);
}
});
document.body.appendChild(input);
input.click();
document.body.removeChild(input);
this.spinning = false;
}
},
// 修改密码弹窗
changePwd(row) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment