|
@@ -6,30 +6,44 @@
|
|
|
* @FilePath : \spfm-market-front\src\pages\main\performance\components\sheet.vue
|
|
|
-->
|
|
|
<template>
|
|
|
+ <fullscreen :fullscreen.sync="fullscreen" class="container" style=" background-color: #ffffff">
|
|
|
<div class="sheet-container">
|
|
|
+ <div >
|
|
|
+ <span style=" font-size: small;
|
|
|
+ margin-right: 10px;">控制权限</span>
|
|
|
+ <el-select v-model="state" placeholder="请选择" :disabled="this.type=='view'?true:false" size="mini">
|
|
|
+ <el-option
|
|
|
+ v-for="item in options"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
<div class="flex-justify-align-end margin-bottom-20">
|
|
|
<!-- <span-->
|
|
|
<!-- v-if="['template'].includes(attribute)"-->
|
|
|
<!-- ><span class="sheet-container-require">*</span>模板类型:</span-->
|
|
|
<!-- >-->
|
|
|
<el-upload
|
|
|
- v-if="!id"
|
|
|
action
|
|
|
:on-change="handleChange"
|
|
|
:show-file-list="false"
|
|
|
style=""
|
|
|
>
|
|
|
- <el-button size="mini" type="primary">选择文件</el-button>
|
|
|
+ <el-button :disabled="this.type=='view'?true:false" size="mini" type="primary">选择文件</el-button>
|
|
|
</el-upload>
|
|
|
<el-button
|
|
|
type="danger"
|
|
|
@click="handleResave"
|
|
|
- :disabled="handleForbid()"
|
|
|
size="mini"
|
|
|
+ :disabled="this.type=='view'?true:false"
|
|
|
>保存</el-button
|
|
|
>
|
|
|
+<!-- :disabled="handleForbid()"-->
|
|
|
+
|
|
|
<el-button size="mini" type="danger" @click="handleDownload">导出</el-button>
|
|
|
- <el-button size="mini" type="primary" @click="handleFullscreen()">返回</el-button>
|
|
|
+ <el-button size="mini" type="primary" @click="returnList">返回</el-button>
|
|
|
<el-button size="mini" type="primary" @click="handleFullscreen()">全屏显示</el-button>
|
|
|
<!-- <template v-if="['edit'].includes(type)">-->
|
|
|
|
|
@@ -54,8 +68,8 @@
|
|
|
<!-- </template>-->
|
|
|
</div>
|
|
|
<div id="luckysheet" class="sheet-container-block" ></div>
|
|
|
-
|
|
|
</div>
|
|
|
+ </fullscreen>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
@@ -67,6 +81,10 @@ export default {
|
|
|
simpleDialog,
|
|
|
},
|
|
|
props: {
|
|
|
+ tableData: {
|
|
|
+ type: Object,
|
|
|
+ default: null,
|
|
|
+ },
|
|
|
type: {
|
|
|
type: String,
|
|
|
default: "view", // view 查看 edit 编辑
|
|
@@ -88,6 +106,15 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ fullscreen: false,
|
|
|
+ options: [{
|
|
|
+ value: '1',
|
|
|
+ label: '开启'
|
|
|
+ },{
|
|
|
+ value: '0',
|
|
|
+ label: '关闭'
|
|
|
+ }],
|
|
|
+ state:'1',
|
|
|
form: {
|
|
|
charge: [
|
|
|
{
|
|
@@ -181,12 +208,18 @@ export default {
|
|
|
},
|
|
|
methods: {
|
|
|
handleInit() {
|
|
|
- if (this.id) {
|
|
|
- this.handleQuery();
|
|
|
+ console.log("-----id",this.id)
|
|
|
+
|
|
|
+ if (this.id) {
|
|
|
+
|
|
|
+ this.handleQuery();
|
|
|
} else {
|
|
|
this.handleCreate();
|
|
|
}
|
|
|
},
|
|
|
+ returnList(){
|
|
|
+ this.$emit("save");
|
|
|
+ },
|
|
|
// 填报日期
|
|
|
handleWrite(value) {
|
|
|
if (value) {
|
|
@@ -230,141 +263,36 @@ export default {
|
|
|
// handleRadio(e){
|
|
|
// console.log(e,'e');
|
|
|
// },
|
|
|
- handleAllow({ row, column }) {
|
|
|
- let public_permisson =
|
|
|
- (!this.form.permission_type ||
|
|
|
- this.status === "2" ||
|
|
|
- this.status === "3") &&
|
|
|
- this.type === "edit";
|
|
|
- let editable =
|
|
|
- this.row_list.includes(row) && this.column_list.includes(column);
|
|
|
- // let totalBoolean = (public_permisson || editable) && this.id;
|
|
|
- let totalBoolean = public_permisson || editable;
|
|
|
- return totalBoolean;
|
|
|
- },
|
|
|
+ handleAllow() {
|
|
|
+ // let public_permisson = (!this.form.permission_type ||
|
|
|
+ // this.status === "2" ||
|
|
|
+ // this.status === "3") &&
|
|
|
+ // this.type === "edit";
|
|
|
+ // let editable = this.row_list.includes(row) && this.column_list.includes(column);
|
|
|
+ // // let totalBoolean = (public_permisson || editable) && this.id;
|
|
|
+ //查看无法编辑
|
|
|
+ return this.type=="view"?false:true;
|
|
|
+ // let totalBoolean = public_permisson || editable;
|
|
|
+ // return totalBoolean;
|
|
|
+ },
|
|
|
async handleQuery() {
|
|
|
- let url = "";
|
|
|
- let params = {};
|
|
|
- switch (this.attribute) {
|
|
|
- case "template":
|
|
|
- url = "/market/CMKFileTemplate/QueryCMKFileTemplateById";
|
|
|
- params = {
|
|
|
- templateId: this.id,
|
|
|
- };
|
|
|
- break;
|
|
|
- case "order":
|
|
|
- url = "/market/CMKIssued/CMKQueryIssuedById";
|
|
|
- params = {
|
|
|
- id: this.id,
|
|
|
- };
|
|
|
- break;
|
|
|
- case "file":
|
|
|
- url = "/market/CMKIssued/CMKIssuedProcessByUser";
|
|
|
- params = {
|
|
|
- id: this.id,
|
|
|
- receiverId: this.receiver,
|
|
|
- };
|
|
|
- break;
|
|
|
- }
|
|
|
- const {
|
|
|
- data: {
|
|
|
- templateContent,
|
|
|
- templateName,
|
|
|
- issuedId,
|
|
|
- templateId,
|
|
|
- list,
|
|
|
- superviseFlag,
|
|
|
- templateType,
|
|
|
- addFlag,
|
|
|
- distributeEndTime,
|
|
|
- distributeTime,
|
|
|
- distributeType,
|
|
|
- },
|
|
|
- } = await this.$http({
|
|
|
- url,
|
|
|
- method: "post",
|
|
|
- headers: {
|
|
|
- "Content-Type": "application/json",
|
|
|
- },
|
|
|
- data: params,
|
|
|
- });
|
|
|
- this.superviseFlag = superviseFlag;
|
|
|
- if (superviseFlag === "1") {
|
|
|
- this.superviseForm = {
|
|
|
- distribute: distributeType, // 派单周期
|
|
|
- write: distributeTime, // 填写周期
|
|
|
- endTime: distributeEndTime, // 截止时间
|
|
|
- };
|
|
|
- }
|
|
|
- console.log(this.superviseForm, "this.superviseForm");
|
|
|
- this.templateType = templateType;
|
|
|
- this.template_id = templateId;
|
|
|
- this.issued_id = issuedId;
|
|
|
- this.addFlag = addFlag;
|
|
|
- console.log(JSON.parse(templateContent), "123123");
|
|
|
- if (list && list.length) {
|
|
|
- const { type } = list[0];
|
|
|
- if (type === "1") {
|
|
|
- // 公共权限
|
|
|
- // const { allowEditingColumns, rowNum } = list[0];
|
|
|
- this.form = {
|
|
|
- permission_type: Number(type) - 1,
|
|
|
- person: list.map((el) => {
|
|
|
- return `${el.principalMent}-${el.principalId},${el.principalName}`;
|
|
|
- }),
|
|
|
- charge: [
|
|
|
- {
|
|
|
- person: "",
|
|
|
- col_start: "",
|
|
|
- col_end: "",
|
|
|
- row_start: "",
|
|
|
- row_end: "",
|
|
|
- },
|
|
|
- ],
|
|
|
- };
|
|
|
- } else {
|
|
|
- // 特殊权限
|
|
|
- this.form = {
|
|
|
- permission_type: Number(type) - 1,
|
|
|
- col_start: "",
|
|
|
- col_end: "",
|
|
|
- row_start: "",
|
|
|
- row_end: "",
|
|
|
- charge: list.map((el) => ({
|
|
|
- person: `${el.principalMent}-${el.principalId},${el.principalName}`,
|
|
|
- col_start: el.allowEditingColumns.split(",")[0],
|
|
|
- col_end:
|
|
|
- el.allowEditingColumns.split(",")[
|
|
|
- el.allowEditingColumns.split(",").length - 1
|
|
|
- ],
|
|
|
- row_start: el.rowNum.split(",")[0],
|
|
|
- row_end: el.rowNum.split(",")[el.rowNum.split(",").length - 1],
|
|
|
- })),
|
|
|
- };
|
|
|
- }
|
|
|
- this.row_list =
|
|
|
- this.type === "edit" && list[0].rowNum
|
|
|
- ? list[0].rowNum
|
|
|
- .split(",")
|
|
|
- .map((element) => JSON.parse(element) - 1)
|
|
|
- : [];
|
|
|
- if (this.type === "edit" && list[0].allowEditingColumns) {
|
|
|
- // this.column_list = list[0].allowEditingColumns
|
|
|
- // .split(",")
|
|
|
- // .map((element) => JSON.parse(element) - 1);
|
|
|
- this.column_list =
|
|
|
- list[0].allowEditingColumnsFlag === "1"
|
|
|
- ? list[0].allowEditingColumnsShuzi
|
|
|
- .split(",")
|
|
|
- .map((element) => JSON.parse(element) - 1)
|
|
|
- : list[0].allowEditingColumns
|
|
|
- .split(",")
|
|
|
- .map((element) => JSON.parse(element) - 1);
|
|
|
- } else {
|
|
|
- this.column_list = [];
|
|
|
- }
|
|
|
- // this.formateNumber(list[0].allowEditingColumns);
|
|
|
- }
|
|
|
+ debugger
|
|
|
+ const {
|
|
|
+ data: {
|
|
|
+ templateContent,
|
|
|
+ templateName,
|
|
|
+ state,
|
|
|
+ },
|
|
|
+ } = await this.$http({
|
|
|
+ url: "/market/workLists/getWorkById",
|
|
|
+ method: "post",
|
|
|
+ headers: {
|
|
|
+ "Content-Type": "application/json",
|
|
|
+ },
|
|
|
+ data: {id:this.id},
|
|
|
+ });
|
|
|
+console.log("&&&&&&&&&&&&&sss:",state,templateName)
|
|
|
+ this.state=state;
|
|
|
this.handleCreate({
|
|
|
json: templateContent ? JSON.parse(templateContent) : {},
|
|
|
name: templateName,
|
|
@@ -410,36 +338,6 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- handleForbid() {
|
|
|
- // const object = {};
|
|
|
- const { permission_type } = this.form;
|
|
|
- if (permission_type === 0) {
|
|
|
- // 公共权限 暂时不用可编辑行和列
|
|
|
- const { person } = this.form;
|
|
|
- if (person.length) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- return true;
|
|
|
- } else if (permission_type === 1) {
|
|
|
- // 特殊权限
|
|
|
- let flag = 1;
|
|
|
- const { charge } = this.form;
|
|
|
- charge.forEach((el) => {
|
|
|
- if (
|
|
|
- Object.values(el).filter((v) => {
|
|
|
- return v !== "";
|
|
|
- }).length === 5
|
|
|
- ) {
|
|
|
- flag = flag * 1;
|
|
|
- } else {
|
|
|
- flag = flag * 0;
|
|
|
- }
|
|
|
- });
|
|
|
- return !flag;
|
|
|
- } else {
|
|
|
- return true;
|
|
|
- }
|
|
|
- },
|
|
|
async handleCreate({ file, json, type, name } = {}) {
|
|
|
let that = this;
|
|
|
const options = {
|
|
@@ -451,7 +349,7 @@ export default {
|
|
|
{ row_focus: row, column_focus: column },
|
|
|
]) {
|
|
|
if (!that.handleAllow({ row, column })) {
|
|
|
- that.$message.error("您没有编辑权限");
|
|
|
+ that.$message.error("查看无法编辑");
|
|
|
}
|
|
|
},
|
|
|
// cellUpdated: function (row, column) {
|
|
@@ -478,7 +376,7 @@ export default {
|
|
|
{ row_focus: row, column_focus: column },
|
|
|
]) {
|
|
|
if (!that.handleAllow({ row, column })) {
|
|
|
- that.$message.error("您没有编辑权限");
|
|
|
+ that.$message.error("查看无法编辑");
|
|
|
return false;
|
|
|
}
|
|
|
},
|
|
@@ -499,7 +397,7 @@ export default {
|
|
|
options.data = [
|
|
|
...export_json.sheets.map((element) => ({
|
|
|
...element,
|
|
|
- zoomRatio:1,
|
|
|
+ zoomRatio:0.75,
|
|
|
})),
|
|
|
];
|
|
|
options.title = export_json.info.name;
|
|
@@ -513,7 +411,7 @@ export default {
|
|
|
options.data = [
|
|
|
{
|
|
|
...json,
|
|
|
- zoomRatio: 1,
|
|
|
+ zoomRatio: 0.75,
|
|
|
},
|
|
|
];
|
|
|
options.title = name;
|
|
@@ -908,81 +806,69 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
handleFullscreen() {
|
|
|
- const element = document.body;
|
|
|
- const is_fullscreen =
|
|
|
- document.fullScreen ||
|
|
|
- document.mozFullScreen ||
|
|
|
- document.webkitIsFullScreen;
|
|
|
- if (!is_fullscreen) {
|
|
|
- //进入全屏,多重短路表达式
|
|
|
- (element.requestFullscreen && element.requestFullscreen()) ||
|
|
|
- (element.mozRequestFullScreen && element.mozRequestFullScreen()) ||
|
|
|
- (element.webkitRequestFullscreen &&
|
|
|
- element.webkitRequestFullscreen()) ||
|
|
|
- (element.msRequestFullscreen && element.msRequestFullscreen());
|
|
|
- } else {
|
|
|
- //退出全屏,三目运算符
|
|
|
- document.exitFullscreen
|
|
|
- ? document.exitFullscreen()
|
|
|
- : document.mozCancelFullScreen
|
|
|
- ? document.mozCancelFullScreen()
|
|
|
- : document.webkitExitFullscreen
|
|
|
- ? document.webkitExitFullscreen()
|
|
|
- : "";
|
|
|
- }
|
|
|
- },
|
|
|
- handleResave() {
|
|
|
- const sheet_name = window.luckysheet.getSheet().name;
|
|
|
- const data = window.luckysheet.getSheet(sheet_name);
|
|
|
- const workbook_name = window.luckysheet.getWorkbookName();
|
|
|
-
|
|
|
- let value = {};
|
|
|
- if (!this.templateType) {
|
|
|
- this.$message.error("请输入模板类型");
|
|
|
- return;
|
|
|
- }
|
|
|
- if (
|
|
|
- Object.values(this.superviseForm).filter((el) => el !== "").length === 3
|
|
|
- ) {
|
|
|
- value = {
|
|
|
- templateId: this.id,
|
|
|
- distributeEndTime: this.superviseForm.endTime, // 督办设置的截止时间
|
|
|
- distributeTime: this.superviseForm.write, // 派发时间–或者叫—填报时间
|
|
|
- distributeType: this.superviseForm.distribute, //派发周期类型 派发周期类型 0.月 1.季度 2.半年 3.年
|
|
|
- superviseFlag: 1, //督办标识 0.不是 1.是
|
|
|
- templateType: this.templateType, //模板类型
|
|
|
- templateContent: JSON.stringify(data), //文件内容
|
|
|
- templateName: workbook_name, //模板名称
|
|
|
- templateUrl: "", //文件链接
|
|
|
- status: "0",
|
|
|
- };
|
|
|
- } else {
|
|
|
- value = {
|
|
|
- templateId: this.id,
|
|
|
- superviseFlag: 0, //督办标识 0.不是 1.是
|
|
|
- templateType: this.templateType, //模板类型
|
|
|
- templateContent: JSON.stringify(data), //文件内容
|
|
|
- templateName: workbook_name, //模板名称
|
|
|
- templateUrl: "", //文件链接
|
|
|
- status: "0",
|
|
|
- };
|
|
|
- }
|
|
|
+ this.fullscreen = !this.fullscreen
|
|
|
|
|
|
- this.$http({
|
|
|
- url: "/market/CMKFileTemplate/UptateCMKFileTemplateById",
|
|
|
- method: "post",
|
|
|
- headers: {
|
|
|
- "Content-Type": "application/json",
|
|
|
- },
|
|
|
- data: value,
|
|
|
- }).then(() => {
|
|
|
- this.$message({
|
|
|
- type: "success",
|
|
|
- message: "保存成功",
|
|
|
- });
|
|
|
- this.$emit("save");
|
|
|
- });
|
|
|
+ // const element = document.body;
|
|
|
+ // const is_fullscreen =
|
|
|
+ // document.fullScreen ||
|
|
|
+ // document.mozFullScreen ||
|
|
|
+ // document.webkitIsFullScreen;
|
|
|
+ // if (!is_fullscreen) {
|
|
|
+ // //进入全屏,多重短路表达式
|
|
|
+ // (element.requestFullscreen && element.requestFullscreen()) ||
|
|
|
+ // (element.mozRequestFullScreen && element.mozRequestFullScreen()) ||
|
|
|
+ // (element.webkitRequestFullscreen &&
|
|
|
+ // element.webkitRequestFullscreen()) ||
|
|
|
+ // (element.msRequestFullscreen && element.msRequestFullscreen());
|
|
|
+ // } else {
|
|
|
+ // //退出全屏,三目运算符
|
|
|
+ // document.exitFullscreen
|
|
|
+ // ? document.exitFullscreen()
|
|
|
+ // : document.mozCancelFullScreen
|
|
|
+ // ? document.mozCancelFullScreen()
|
|
|
+ // : document.webkitExitFullscreen
|
|
|
+ // ? document.webkitExitFullscreen()
|
|
|
+ // : "";
|
|
|
+ // }
|
|
|
},
|
|
|
+ handleResave() {
|
|
|
+ const sheet_name = window.luckysheet.getSheet().name;
|
|
|
+ const data = window.luckysheet.getSheet(sheet_name);
|
|
|
+ const workbook_name = window.luckysheet.getWorkbookName();
|
|
|
+
|
|
|
+ let value = {
|
|
|
+ // templateId: this.id,
|
|
|
+ templateContent: JSON.stringify(data), //文件内容
|
|
|
+ templateName: workbook_name, //模板名称
|
|
|
+ templateUrl: "", //文件链接
|
|
|
+ state: this.state,
|
|
|
+ };
|
|
|
+ if("edit" ==this.type){
|
|
|
+ value.id=this.id;
|
|
|
+ }
|
|
|
+ this.$http({
|
|
|
+ url: "/market/workLists/saveOrUpdate",
|
|
|
+ method: "post",
|
|
|
+ headers: {
|
|
|
+ "Content-Type": "application/json",
|
|
|
+ },
|
|
|
+ data: value,
|
|
|
+ }).then((res) => {
|
|
|
+ console.log("----res",res);
|
|
|
+ if(res.data.result==0){
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: "保存成功",
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ this.$message({
|
|
|
+ type: "error",
|
|
|
+ message: res.data.body,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.$emit("save");
|
|
|
+ });
|
|
|
+ },
|
|
|
handleChargeList() {
|
|
|
this.$http({
|
|
|
url: "/market/techcentergj/queryLeaderList",
|
|
@@ -1003,7 +889,7 @@ export default {
|
|
|
console.log(this.attribute, "attribute");
|
|
|
console.log(this.type, "type");
|
|
|
this.handleInit();
|
|
|
- this.handleChargeList();
|
|
|
+ // this.handleChargeList();
|
|
|
},
|
|
|
destroyed() {
|
|
|
window.luckysheet.destroy();
|
|
@@ -1014,7 +900,7 @@ export default {
|
|
|
<style lang="scss" scope>
|
|
|
.sheet-container {
|
|
|
position: relative;
|
|
|
- width: calc(100% - 40px);
|
|
|
+ width: 100%;
|
|
|
height: 100%;
|
|
|
&-block {
|
|
|
overflow: hidden;
|