Commit 4c6551d1 authored by lenovo's avatar lenovo

物资模板添加发布功能

parent 419e0924
...@@ -97,6 +97,37 @@ public class ActSuppliesTemplateController extends BaseController { ...@@ -97,6 +97,37 @@ public class ActSuppliesTemplateController extends BaseController {
return toAjax(actSuppliesTemplateService.updateSuppliesTemplate(sysSupplies)); return toAjax(actSuppliesTemplateService.updateSuppliesTemplate(sysSupplies));
} }
/**
* 发布Excel模板
*/
@PreAuthorize("@ss.hasPermi('SuppliesTemplate:SuppliesTemplate:releaseStatus')")
@Log(title = "Excel模板", businessType = BusinessType.UPDATE)
@GetMapping("/releaseStatus/{ids}")
public AjaxResult releaseStatus(@PathVariable Long[] ids) {
return toAjax(actSuppliesTemplateService.releaseStatus(ids));
}
/**
* 下架Excel模板
*/
@PreAuthorize("@ss.hasPermi('SuppliesTemplate:SuppliesTemplate:offShelfStatus')")
@Log(title = "Excel模板", businessType = BusinessType.UPDATE)
@GetMapping("/offShelfStatus/{ids}")
public AjaxResult offShelfStatus(@PathVariable Long[] ids) {
return toAjax(actSuppliesTemplateService.offShelfStatus(ids));
}
/**
* 下架Excel模板
*/
@PreAuthorize("@ss.hasPermi('SuppliesTemplate:SuppliesTemplate:copyTemplate')")
@Log(title = "Excel模板", businessType = BusinessType.UPDATE)
@GetMapping("/copyTemplate/{id}")
public AjaxResult copyTemplate(@PathVariable Long id) {
String name = actSuppliesTemplateService.copyTemplate(id);
return AjaxResult.success("200",name);
}
/** /**
* 删除Excel模板 * 删除Excel模板
*/ */
...@@ -107,9 +138,9 @@ public class ActSuppliesTemplateController extends BaseController { ...@@ -107,9 +138,9 @@ public class ActSuppliesTemplateController extends BaseController {
if (actSuppliesTemplateService.findall(ids).size()>0){ // if (actSuppliesTemplateService.findall(ids).size()>0){
return AjaxResult.error("该模板下存在关联规则,请先删除关联规则!!!","操作失败"); // return AjaxResult.error("该模板下存在关联规则,请先删除关联规则!!!","操作失败");
} // }
return toAjax(actSuppliesTemplateService.deleteSuppliesTemplateByIds(ids)); return toAjax(actSuppliesTemplateService.deleteSuppliesTemplateByIds(ids));
} }
...@@ -149,9 +180,9 @@ public class ActSuppliesTemplateController extends BaseController { ...@@ -149,9 +180,9 @@ public class ActSuppliesTemplateController extends BaseController {
@GetMapping("/disable/{id}") @GetMapping("/disable/{id}")
public AjaxResult setDisable(@PathVariable("id") Long id) public AjaxResult setDisable(@PathVariable("id") Long id)
{ {
if(actSuppliesTemplateService.find(id).size()>0){ // if(actSuppliesTemplateService.find(id).size()>0){
return AjaxResult.success("该物料下存在关联物料,请先删除关联物料!!!","操作失败"); // return AjaxResult.success("该物料下存在关联物料,请先删除关联物料!!!","操作失败");
} // }
System.out.println("开始处理【禁用物料总分类管理】的请求,参数:{}"+ id); System.out.println("开始处理【禁用物料总分类管理】的请求,参数:{}"+ id);
actSuppliesTemplateService.setDisable(id); actSuppliesTemplateService.setDisable(id);
return AjaxResult.success(); return AjaxResult.success();
......
...@@ -17,6 +17,8 @@ public interface ActSuppliesTemplateMapper ...@@ -17,6 +17,8 @@ public interface ActSuppliesTemplateMapper
List<ActSuppliesTemplate> selectSuppliesTemplateById(Long id); List<ActSuppliesTemplate> selectSuppliesTemplateById(Long id);
List<ActSuppliesTemplate> selectSuppliesTemplateByIdNoId(Long id);
int insertSuppliesTemplate(ActSuppliesTemplate sysSupplies); int insertSuppliesTemplate(ActSuppliesTemplate sysSupplies);
// List<ActSuppliesTemplate> selectlistnameid(); // List<ActSuppliesTemplate> selectlistnameid();
...@@ -25,6 +27,8 @@ public interface ActSuppliesTemplateMapper ...@@ -25,6 +27,8 @@ public interface ActSuppliesTemplateMapper
int deleteSuppliesTemplateByIds(Long[] ids); int deleteSuppliesTemplateByIds(Long[] ids);
int updateSuppliesTemplateByIds(Long[] ids);
List<ActSuppliesTemplate> saveTemplate(Long id); List<ActSuppliesTemplate> saveTemplate(Long id);
List<Integer> findall(Long[] ids); List<Integer> findall(Long[] ids);
...@@ -33,4 +37,7 @@ public interface ActSuppliesTemplateMapper ...@@ -33,4 +37,7 @@ public interface ActSuppliesTemplateMapper
List<String> findName(); List<String> findName();
List<ActSuppliesTemplate> saveTemplateStatus(Long[] ids);
int selectHistory(Long id);
} }
...@@ -46,5 +46,9 @@ public interface ActSuppliesTemplateService ...@@ -46,5 +46,9 @@ public interface ActSuppliesTemplateService
List<String> findName(); List<String> findName();
int releaseStatus(Long[] ids);
int offShelfStatus(Long[] ids);
String copyTemplate(Long id);
} }
...@@ -3,13 +3,13 @@ package com.ruoyi.system.service.impl; ...@@ -3,13 +3,13 @@ package com.ruoyi.system.service.impl;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.domain.ActSupplies;
import com.ruoyi.system.domain.ActSuppliesTemplate; import com.ruoyi.system.domain.ActSuppliesTemplate;
import com.ruoyi.system.mapper.ActSuppliesTemplateMapper; import com.ruoyi.system.mapper.ActSuppliesTemplateMapper;
import com.ruoyi.system.service.ActSuppliesTemplateService; import com.ruoyi.system.service.ActSuppliesTemplateService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.LinkedList;
import java.util.List; import java.util.List;
/** /**
...@@ -58,7 +58,37 @@ public class ActSuppliesTemplateServiceImpl implements ActSuppliesTemplateServic ...@@ -58,7 +58,37 @@ public class ActSuppliesTemplateServiceImpl implements ActSuppliesTemplateServic
@Override @Override
public int deleteSuppliesTemplateByIds(Long[] ids) { public int deleteSuppliesTemplateByIds(Long[] ids) {
return actSuppliesTemplateMapper.deleteSuppliesTemplateByIds(ids);
List<ActSuppliesTemplate> actSuppliesTemplate = actSuppliesTemplateMapper.saveTemplateStatus(ids);
List<Long> idsd = new LinkedList<>();
List<Long> idsu = new LinkedList<>();
for (int i=0;i<actSuppliesTemplate.size();i++) {
if (actSuppliesTemplate.get(i).getStatus()==1) {
idsd.add(actSuppliesTemplate.get(i).getId());
} else {
int count = actSuppliesTemplateMapper.selectHistory(actSuppliesTemplate.get(i).getId());
if(count>0){
idsu.add(actSuppliesTemplate.get(i).getId());
}else {
idsd.add(actSuppliesTemplate.get(i).getId());
}
}
}
if (idsd.size()>0){
actSuppliesTemplateMapper.deleteSuppliesTemplateByIds(idsd.toArray(idsd.toArray(new Long[0])));
}else if (idsu.size()>0){
actSuppliesTemplateMapper.updateSuppliesTemplateByIds(idsu.toArray(idsu.toArray(new Long[0])));
}
return 1;
} }
@Override @Override
...@@ -91,6 +121,69 @@ public class ActSuppliesTemplateServiceImpl implements ActSuppliesTemplateServic ...@@ -91,6 +121,69 @@ public class ActSuppliesTemplateServiceImpl implements ActSuppliesTemplateServic
return actSuppliesTemplateMapper.findName(); return actSuppliesTemplateMapper.findName();
} }
@Override
public int releaseStatus(Long[] ids) {
List<ActSuppliesTemplate> actSuppliesTemplate = actSuppliesTemplateMapper.saveTemplateStatus(ids);
for (int i =0;i<actSuppliesTemplate.size();i++) {
SysUser user = SecurityUtils.getLoginUser().getUser();
actSuppliesTemplate.get(i).setUpdateBy(user.getUserName());
actSuppliesTemplate.get(i).setUpdateTime(DateUtils.getNowDate());
if (actSuppliesTemplate.get(i).getStatus() > 0){
actSuppliesTemplate.get(i).setStatus(0);
actSuppliesTemplateMapper.updateSuppliesTemplate(actSuppliesTemplate.get(i));
}
}
return 1;
}
@Override
public int offShelfStatus(Long[] ids) {
List<ActSuppliesTemplate> actSuppliesTemplate = actSuppliesTemplateMapper.saveTemplateStatus(ids);
for (int i =0;i<actSuppliesTemplate.size();i++){
SysUser user = SecurityUtils.getLoginUser().getUser();
actSuppliesTemplate.get(i).setUpdateBy(user.getUserName());
actSuppliesTemplate.get(i).setUpdateTime(DateUtils.getNowDate());
if (actSuppliesTemplate.get(i).getStatus() ==0){
int count = actSuppliesTemplateMapper.selectHistory(actSuppliesTemplate.get(i).getId());
if (count == 0){
actSuppliesTemplate.get(i).setStatus(1);
actSuppliesTemplateMapper.updateSuppliesTemplate(actSuppliesTemplate.get(i));
}else {
actSuppliesTemplate.get(i).setStatus(2);
actSuppliesTemplateMapper.updateSuppliesTemplate(actSuppliesTemplate.get(i));
}
}
}
return 1;
}
@Override
public String copyTemplate(Long id) {
List<ActSuppliesTemplate> actSuppliesTemplates = actSuppliesTemplateMapper.selectSuppliesTemplateByIdNoId(id);
actSuppliesTemplates.get(0).setStatus(1);
SysUser user = SecurityUtils.getLoginUser().getUser();
actSuppliesTemplates.get(0).setCreateBy(user.getCreateBy());
actSuppliesTemplates.get(0).setCreateTime(DateUtils.getNowDate());
actSuppliesTemplateMapper.insertSuppliesTemplate(actSuppliesTemplates.get(0));
return actSuppliesTemplates.get(0).getTemplateName();
}
private void updateStatusById(Long id, Integer status){ private void updateStatusById(Long id, Integer status){
String[] statusText={"禁用","启用"}; String[] statusText={"禁用","启用"};
......
...@@ -51,11 +51,19 @@ ...@@ -51,11 +51,19 @@
where id = #{id} where id = #{id}
</select> </select>
<select id="saveTemplate" parameterType="Long" resultMap="SuppliesTemplateResult"> <select id="selectSuppliesTemplateByIdNoId" parameterType="Long" resultMap="SuppliesTemplateResult">
<include refid="selectSuppliesTemplateVo"/> <include refid="selectSuppliesTemplateVo"/>
where id = #{id} where id = #{id}
</select> </select>
<select id="saveTemplate" parameterType="Long" resultMap="SuppliesTemplateResult">
select det_id, template_name, template_content, status, create_by, create_time, update_by, update_time from act_supplies_template where id = #{id}
</select>
<select id="selectHistory" parameterType="Long" resultType="Integer">
SELECT COUNT(template_id) FROM act_supplies_historydata where template_id = #{id}
</select>
<insert id="insertSuppliesTemplate" parameterType="ActSuppliesTemplate" useGeneratedKeys="true" keyProperty="id"> <insert id="insertSuppliesTemplate" parameterType="ActSuppliesTemplate" useGeneratedKeys="true" keyProperty="id">
insert into act_supplies_template insert into act_supplies_template
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
...@@ -105,5 +113,19 @@ ...@@ -105,5 +113,19 @@
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
<update id="updateSuppliesTemplateByIds" parameterType="String">
update act_supplies_template set status = 2 where id in
<foreach collection="array" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<select id="saveTemplateStatus" parameterType="String" resultMap="SuppliesTemplateResult">
select id,status from act_supplies_template where id in
<foreach collection="array" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper> </mapper>
import request from '@/utils/request' import request from '@/utils/request'
import LuckyExcel from "luckyexcel";
//小物料转大物料 //小物料转大物料
...@@ -55,6 +56,27 @@ export function updateSuppliesTemplate(data) { ...@@ -55,6 +56,27 @@ export function updateSuppliesTemplate(data) {
}) })
} }
export function releaseTemplateStatus(id){
return request({
url: '/SuppliesTemplate/SuppliesTemplate/releaseStatus/' + id,
method: 'get'
})
}
export function offShelfTemplateStatus(id){
return request({
url: '/SuppliesTemplate/SuppliesTemplate/offShelfStatus/' + id,
method: 'get'
})
}
export function CopyTemplate(id){
return request({
url: '/SuppliesTemplate/SuppliesTemplate/copyTemplate/' + id,
method: 'get'
})
}
// 删除Excel模板 // 删除Excel模板
export function delSuppliesTemplate(id) { export function delSuppliesTemplate(id) {
return request({ return request({
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
<el-form-item label="模板名称" prop="templateName" label-width="100px"> label-width="68px">
<el-input <el-form-item label="模板名称" prop="templateName" label-width="100px">
v-model="queryParams.templateName" <el-input
placeholder="请输入模板名称" v-model="queryParams.templateName"
clearable placeholder="请输入模板名称"
@keyup.enter.native="handleQuery" clearable
maxlength="15" @keyup.enter.native="handleQuery"
maxlength="15"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable @keyup.enter.native="handleQuery">
<el-option label="未发布" :value="0"></el-option>
<el-option label="已发布" :value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:add']"
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:edit']"
>修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:remove']"
>删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="multiple"
@click="releaseStatus"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:releaseStatus']"
>发布
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="SuppliesTemplateList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column type="index" width="80" align="center" label="序号" :index="indexMethod"/>
<el-table-column label="模板名称" align="center" prop="templateName"/>
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope">
<div>
<el-switch
@change="toggleEnable(scope.row)"
v-model="scope.row.status"
:active-value="0"
:inactive-value="1"
active-color="#13ce66"
inactive-color="#cccccc"
active-text="已发布"
inactive-text="未发布">
</el-switch>
</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" prop="status">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="releaseStatus(scope.row)"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:status']"
:style="{display : scope.row.status>0?'':'none'}"
>发布
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="offShelfStatus(scope.row)"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:status']"
:style="{display : scope.row.status===0?'':'none'}"
>下架
</el-button>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleSave(scope.row)"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate']"
>详情
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleCopy(scope.row)"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:edit']"
>复制
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:edit']"
:style="{display : scope.row.status===1?'':'none'}"
>修改
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:remove']"
>删除
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/> />
</el-form-item>
<el-form-item label="状态" prop="status"> <!-- 添加或修改Excel模板对话框 -->
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable @keyup.enter.native="handleQuery"> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-option label="启用" :value="0"></el-option> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-option label="禁用" :value="1"></el-option> <!-- <el-form-item label="状态" prop="status">-->
</el-select> <!-- <el-select v-model="form.status" placeholder="请选择状态">-->
</el-form-item> <!-- <el-option label="启用" :value="0"></el-option>-->
<el-form-item> <!-- <el-option label="禁用" :value="1"></el-option>-->
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <!-- </el-select>-->
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <!-- </el-form-item>-->
</el-form-item>
</el-form> <el-upload
ref="uploadRef"
<el-row :gutter="10" class="mb8"> class="upload-demo"
<el-col :span="1.5"> drag
<el-button action=""
type="primary" :before-upload="beforeUpload"
plain :on-change="handleChange"
icon="el-icon-plus" :file-list="fileListName"
size="mini" >
@click="handleAdd" <i class="el-icon-upload"></i>
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:add']" <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
>新增</el-button> <div class="el-upload__tip" slot="tip">只能上传xlsx文件</div>
</el-col> </el-upload>
<el-col :span="1.5">
<el-button <el-progress v-if="showProgress" :percentage="uploadProgress"></el-progress>
type="success"
plain </el-form>
icon="el-icon-edit"
size="mini" <div slot="footer" class="dialog-footer">
:disabled="single" <el-button type="primary" @click="submitForm">确 定</el-button>
@click="handleUpdate" <el-button @click="cancel">取 消</el-button>
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:edit']" </div>
>修改</el-button> </el-dialog>
</el-col>
<el-col :span="1.5">
<el-button <div id="luckysheet" :style="{ position: positionValue, top: '0', left: '0', right: '0', bottom: '0' }"></div>
type="danger"
plain </div>
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:remove']"
>删除</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="SuppliesTemplateList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" width="80" align="center" label="序号" :index="indexMethod" />
<el-table-column label="模板名称" align="center" prop="templateName" />
<el-table-column label="状态" align="center" prop="status" >
<template slot-scope="scope">
<div>
<el-switch
@change="toggleEnable(scope.row)"
v-model="scope.row.status"
:active-value="0"
:inactive-value="1"
active-color="#13ce66"
inactive-color="#cccccc">
</el-switch>
</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleSave(scope.row)"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate']"
>详情</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['SuppliesTemplate:SuppliesTemplate:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改Excel模板对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="状态" prop="status">
<el-select v-model="form.status" placeholder="请选择状态">
<el-option label="启用" :value="0"></el-option>
<el-option label="禁用" :value="1"></el-option>
</el-select>
</el-form-item>
<!-- <el-upload-->
<!-- ref="uploadRef"-->
<!-- class="upload-demo"-->
<!-- drag-->
<!-- show-file-list="true"-->
<!-- action="https://jsonplaceholder.typicode.com/posts/"-->
<!-- multiple-->
<!-- :before-upload="beforeUpload"-->
<!-- >-->
<!-- <i class="el-icon-upload"></i>-->
<!-- <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>-->
<!-- <div class="el-upload__tip" slot="tip">只能上传xlsx文件</div>-->
<!-- </el-upload>-->
<el-upload
ref="uploadRef"
class="upload-demo"
drag
action=""
multiple
:before-upload="beforeUpload"
:on-change="handleChange"
:show-file-list="fileListName.length > 0"
:file-list="fileListName"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip" slot="tip">只能上传xlsx文件</div>
</el-upload>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<div id="luckysheet" :style="{ position: positionValue, top: '0', left: '0', right: '0', bottom: '0' }"></div>
</div>
</template> </template>
<style> <style>
#luckysheet_info_detail_title { #luckysheet_info_detail_title {
display: none; display: none;
} }
#luckysheet_info_detail_update{
display: none; #luckysheet_info_detail_update {
display: none;
} }
#luckysheet_info_detail_save{
display: none; #luckysheet_info_detail_save {
display: none;
} }
.luckysheet-share-logo { .luckysheet-share-logo {
display: none; display: none;
} }
</style> </style>
<script> <script>
import { import {
listSuppliesTemplate, listSuppliesTemplate,
getSuppliesTemplate, getSuppliesTemplate,
delSuppliesTemplate, delSuppliesTemplate,
addSuppliesTemplate, addSuppliesTemplate,
updateSuppliesTemplate, updateSuppliesTemplate,
toggleEnable,toggleDisable, toggleEnable, toggleDisable,
listSuppliesTemplateId,findName listSuppliesTemplateId, findName, releaseTemplateStatus, offShelfTemplateStatus, CopyTemplate
} from "@/api/ruoyi-myLuckyexcel/myluckyexcel"; } from "@/api/ruoyi-myLuckyexcel/myluckyexcel";
import $ from 'jquery'; import $ from 'jquery';
import XLSX from 'xlsx'; import XLSX from 'xlsx';
import LuckyExcel from 'luckyexcel'; import LuckyExcel from 'luckyexcel';
export default { export default {
name: "SuppliesTemplate", name: "SuppliesTemplate",
data() { data() {
return { return {
positionValue: 'static', positionValue: 'static',
fileList: [{ fileList: [{
name: 'food.jpeg', name: 'food.jpeg',
url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100' url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'
}, { }, {
name: 'food2.jpeg', name: 'food2.jpeg',
url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100' url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'
}], }],
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 选中数组 // 选中数组
ids: [], ids: [],
name:[], name: [],
// 非单个禁用 // 非单个禁用
single: true, single: true,
// 非多个禁用 // 非多个禁用
multiple: true, multiple: true,
// 显示搜索条件 // 显示搜索条件
showSearch: true, showSearch: true,
// 总条数 // 总条数
total: 0, total: 0,
// 状态数据字典 // 状态数据字典
statusOptions: [], statusOptions: [],
// Excel模板表格数据 // Excel模板表格数据
SuppliesTemplateList: [], SuppliesTemplateList: [],
//模板详情 //模板详情
TemplateId: [], TemplateId: [],
fileListName: [], fileListName: [],
// 弹出层标题 // 弹出层标题
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
open1: false, open1: false,
// 查询参数 showProgress: false,
queryParams: { uploadProgress: 0,
pageNum: 1, // 查询参数
pageSize: 10, queryParams: {
detId: null, pageNum: 1,
templateName: null, pageSize: 10,
templateContent: null, detId: null,
status: 0, templateName: null,
}, templateContent: null,
form: {}, status: null,
rules: {}, },
} form: {},
}, rules: {},
created() { }
this.getList();
this.positionValue = "static";
},
mounted() {
window.handleReturnButtonClick = this.handleReturnButtonClick;
},
methods: {
/**启用 */
toggleEnable(SuppliesTemplate) {
console.log('你点击了【' + SuppliesTemplate.s + '】的开关控件,当前开关值:' + SuppliesTemplate.status);
let enableText = ['启用', '禁用'];
if (SuppliesTemplate.status === 0) {
toggleEnable(SuppliesTemplate.id).then((response) => {
if (response.code === 200) {
let message = '操作成功,已经将【' + SuppliesTemplate.templateName + '】的状态改为【' + enableText[SuppliesTemplate.status] + '】 !';
this.$message({
message: message,
type: 'success'
});
} else {
this.$message.error(response.message);
}
});
} else {
toggleDisable(SuppliesTemplate.id).then((response) => {
if (response.msg === "200") {
let message = '操作成功,已经将【' + SuppliesTemplate.templateName + '】的状态改为【' + enableText[SuppliesTemplate.status] + '】 !';
this.$message({
message: message,
type: 'error'
});
} else {
this.getList();
this.$message.error(response.msg);
}
});
}
}, },
created() {
/**显示序号*/ this.getList();
indexMethod(index) { this.positionValue = "static";
return index + 1;
},
/**清空上传文件列表*/
handleChange(file) {
// 清空 fileList 中的旧文件
this.fileListName = [];
// 添加文件到 fileList 中
this.fileListName.push(file);
}, },
mounted() {
/**上传事件 */ window.handleReturnButtonClick = this.handleReturnButtonClick;
beforeUpload(file) {
//存在重复
findName(file.name).then(result => {
console.log(result.data)
if (result.data === "存在重复") {
this.fileListName = [];
this.$message.error('上传文件名重复,请修改后上传!')
}
})
const isJpgOrPng = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
if (!isJpgOrPng) {
this.$message.error('只能上传xlsx文件');
}
LuckyExcel.transformExcelToLucky(file, (exportJson, lucksheetfile) => {
this.form.templateName = file.name;
this.form.templateContent = JSON.stringify(exportJson.sheets);
});
return isJpgOrPng;
}, },
// handleFileChange(event){ methods: {
// var file = event.target.files[0]; /**启用 */
// var fileName = file.name; toggleEnable(SuppliesTemplate) {
// fileName = fileName + ""; console.log('你点击了【' + SuppliesTemplate.s + '】的开关控件,当前开关值:' + SuppliesTemplate.status);
// LuckyExcel.transformExcelToLucky(file ,(exportJson,lucksheetfile)=>{ let enableText = ['已发布', '未发布'];
// this.form.templateName = fileName; if (SuppliesTemplate.status === 0) {
// this.form.templateContent = JSON.stringify(exportJson.sheets); toggleEnable(SuppliesTemplate.id).then((response) => {
// }); if (response.code === 200) {
// }, let message = '操作成功,已经将【' + SuppliesTemplate.templateName + '】的状态改为【' + enableText[SuppliesTemplate.status] + '】 !';
this.$message({
/** 查询Excel模板列表 */ message: message,
getList() { type: 'success'
this.indexMethod(0); });
this.loading = true; } else {
listSuppliesTemplate(this.queryParams).then(response => { this.$message.error(response.message);
this.SuppliesTemplateList = response.rows; }
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
detId: null,
name: null,
templateContent: null,
status: 0,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.name = selection.map(item => item.templateName)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.fileListName = [];
this.reset();
this.open = true;
this.title = "添加Excel模板";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.fileListName = [];
this.reset();
const id = row.id || this.ids
getSuppliesTemplate(id).then(response => {
console.log(response.rows[0])
this.form = response.rows[0];
this.open = true;
this.title = "修改Excel模板";
});
},
/** 提交按钮 */
submitForm() {
if (!this.form.templateName) {
this.msgError("上传的文件不能为空!")
} else {
this.fileListName = [];
if (!this.form.templateName) {
this.msgError("上传文件为空!!!")
} else {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateSuppliesTemplate(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}); });
} else { } else {
addSuppliesTemplate(this.form).then(response => { toggleDisable(SuppliesTemplate.id).then((response) => {
this.msgSuccess("新增成功"); if (response.msg === "200") {
this.open = false; let message = '操作成功,已经将【' + SuppliesTemplate.templateName + '】的状态改为【' + enableText[SuppliesTemplate.status] + '】 !';
this.getList(); this.$message({
message: message,
type: 'error'
});
} else {
this.getList();
this.$message.error(response.msg);
}
}); });
}
} }
}); },
}
} /**显示序号*/
}, indexMethod(index) {
return index + 1;
},
/** 详情按钮操作 */
handleSave(row) { /**清空上传文件列表*/
handleChange(file) {
// 清空 fileList 中的旧文件
this.fileListName = [];
// 添加文件到 fileList 中
this.fileListName.push(file);
},
/**上传事件 */
beforeUpload(file) {
//存在重复
findName(file.name).then(result => {
console.log(result.data)
if (result.data === "存在重复") {
this.fileListName = [];
this.$message.error('上传文件名重复,请修改后上传!')
}
})
const isJpgOrPng = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
if (!isJpgOrPng) {
this.$message.error('只能上传xlsx文件');
}
LuckyExcel.transformExcelToLucky(file, (exportJson, lucksheetfile) => {
this.form.templateName = file.name;
this.form.templateContent = JSON.stringify(exportJson.sheets);
});
listSuppliesTemplateId(row.id).then(response => { return isJpgOrPng;
},
// handleFileChange(event){
// var file = event.target.files[0];
// var fileName = file.name;
// fileName = fileName + "";
// LuckyExcel.transformExcelToLucky(file ,(exportJson,lucksheetfile)=>{
// this.form.templateName = fileName;
// this.form.templateContent = JSON.stringify(exportJson.sheets);
// });
// },
/** 查询Excel模板列表 */
getList() {
this.indexMethod(0);
this.loading = true;
listSuppliesTemplate(this.queryParams).then(response => {
this.SuppliesTemplateList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
detId: null,
name: null,
templateContent: null,
status: 0,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.name = selection.map(item => item.templateName)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.fileListName = [];
this.reset();
this.open = true;
this.title = "添加Excel模板";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.fileListName = [];
this.reset();
const id = row.id || this.ids
getSuppliesTemplate(id).then(response => {
console.log(response.rows[0])
this.form = response.rows[0];
this.open = true;
this.title = "修改Excel模板";
});
},
/** 提交按钮 */
submitForm() {
if (!this.form.templateName) {
this.msgError("上传的文件不能为空!")
} else {
this.fileListName = [];
if (!this.form.templateName) {
this.msgError("上传文件为空!!!")
} else {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateSuppliesTemplate(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
this.form.status = 1;
addSuppliesTemplate(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
}
}
},
this.TemplateId = response.rows;
this.luckyLook(); /** 详情按钮操作 */
handleSave(row) {
}) listSuppliesTemplateId(row.id).then(response => {
}, this.TemplateId = response.rows;
/**展示详情luckysheet */
luckyLook() {
this.positionValue = 'absolute';
luckysheet.destroy();
luckysheet.create({
container: "luckysheet", // Luckysheet 的容器元素 ID
title: this.TemplateId[0].templateName, // Excel 文件名
data: JSON.parse(this.TemplateId[0].templateContent), // Excel 数据
showtoolbar: false, //是否第二列显示工具栏
showinfobar: true, //是否显示顶部名称栏
showsheetbar: false, //是否显示底部表格名称区域
pointEdit: false, //是否是编辑器插入表格模式
pointEditUpdate: null, //编辑器表格更新函数
allowEdit: false,//作用:是否允许前台编辑
functionButton: '<button id="exportButton" class="btn btn-primary" style=" padding:3px 6px; font-size: 16px;width: 100px;height: 27px; margin-right: 85px;" onclick="handleReturnButtonClick()">返回</button>',
});
}, this.luckyLook();
/**详情返回按钮 */
handleReturnButtonClick() {
this.positionValue = 'static'; })
luckysheet.destroy();
}, },
/**展示详情luckysheet */
luckyLook() {
/** 删除按钮操作*/ this.positionValue = 'absolute';
handleDelete(row) { luckysheet.destroy();
const ids = row.id || this.ids; luckysheet.create({
const name = row.templateName|| this.name; container: "luckysheet", // Luckysheet 的容器元素 ID
this.$confirm('是否确认删除Excel模板编号为"' + name + '"的数据项?', "警告", { title: this.TemplateId[0].templateName, // Excel 文件名
confirmButtonText: "确定", data: JSON.parse(this.TemplateId[0].templateContent), // Excel 数据
cancelButtonText: "取消", showtoolbar: false, //是否第二列显示工具栏
type: "warning" showinfobar: true, //是否显示顶部名称栏
}).then(function () { showsheetbar: false, //是否显示底部表格名称区域
return delSuppliesTemplate(ids); pointEdit: false, //是否是编辑器插入表格模式
}).then((result) => { pointEditUpdate: null, //编辑器表格更新函数
if (result.data === "操作失败") { allowEdit: false,//作用:是否允许前台编辑
this.getList(); functionButton: '<button id="exportButton" class="btn btn-primary" style=" padding:3px 6px; font-size: 16px;width: 100px;height: 27px; margin-right: 85px;" onclick="handleReturnButtonClick()">返回</button>',
this.msgError("该模板下存在关联规则,请先删除关联规则!!!");
} else {
this.getList();
this.msgSuccess("删除成功");
}
}).catch(() => {
})
}, });
// /** 导出按钮操作 */ },
// handleExport() { /**详情返回按钮 */
// const queryParams = this.queryParams; handleReturnButtonClick() {
// this.$confirm('是否确认导出所有导入规则数据项?', "警告", {
// confirmButtonText: "确定", this.positionValue = 'static';
// cancelButtonText: "取消", luckysheet.destroy();
// type: "warning"
// }).then(function() { },
// return exportMyluckyexcel(queryParams);
// }).then(response => { /** 删除按钮操作*/
// this.download(response.msg); handleDelete(row) {
// }) const ids = row.id || this.ids;
// } const name = row.templateName || this.name;
} this.$confirm('是否确认删除Excel模板编号为"' + name + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return delSuppliesTemplate(ids);
}).then((result) => {
if (result.data === "操作失败") {
this.getList();
this.msgError("该模板下存在关联规则,请先删除关联规则!!!");
} else {
this.getList();
this.msgSuccess("删除成功");
}
}).catch(() => {
})
},
releaseStatus(row) {
const ids = row.id || this.ids;
const name = row.templateName || this.name;
this.$confirm('是否确认发布模板名称为"' + name + '"的数据项?(发布之后无法修改!)', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return releaseTemplateStatus(ids);
}).then((result) => {
if (result.data === "发布失败") {
this.getList();
this.msgError("模板已发布");
} else {
this.getList();
this.msgSuccess("发布成功");
}
}).catch(() => {
})
},
offShelfStatus(row) {
const ids = row.id || this.ids;
const name = row.templateName || this.name;
this.$confirm('是否确认下架模板名称为"' + name + '"的数据项?(下架之后转换规则中将无法使用该模板!)', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return offShelfTemplateStatus(ids);
}).then((result) => {
if (result.data === "下架失败") {
this.getList();
this.msgError("下架失败");
} else {
this.getList();
this.msgSuccess("下架成功");
}
}).catch(() => {
})
},
handleCopy(row){
this.$confirm('是否确认复制名称为"' + name + '"的模板?(复制后名称会改变)', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return CopyTemplate(row.id);
}).then((result) => {
debugger
if (result.data === "复制失败") {
this.getList();
this.msgError("复制失败");
} else {
this.getList();
this.msgSuccess("复制成功,新模板名称为:“"+result.data+"");
}
}).catch(() => {
})
},
// /** 导出按钮操作 */
// handleExport() {
// const queryParams = this.queryParams;
// this.$confirm('是否确认导出所有导入规则数据项?', "警告", {
// confirmButtonText: "确定",
// cancelButtonText: "取消",
// type: "warning"
// }).then(function() {
// return exportMyluckyexcel(queryParams);
// }).then(response => {
// this.download(response.msg);
// })
// }
}
} }
</script> </script>
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