release-v1.0 #1

Merged
panchichun merged 57 commits from release-v1.0 into main 2024-09-13 17:04:18 +08:00
25 changed files with 610 additions and 478 deletions
Showing only changes of commit 8b01478e07 - Show all commits

View File

@ -1,5 +1,5 @@
# 页面标题
VUE_APP_TITLE = 技术交流平台
VUE_APP_TITLE = 工具管理及技术交流平台
# 开发环境配置
ENV = 'development'

View File

@ -1,5 +1,5 @@
# 页面标题
VUE_APP_TITLE = 技术交流平台
VUE_APP_TITLE = 工具管理及技术交流平台
# 生产环境配置
ENV = 'production'
@ -7,11 +7,11 @@ ENV = 'production'
VUE_APP_CONTEXT_PATH = '/tool-tech'
# 工具与技术交流管理系统/生产环境
VUE_APP_BASE_API = '/prod-api'
VUE_APP_WS_URL = 'wss://www.rzdata.net/tool-tech-admin/websocket'
VUE_APP_BASE_API = '/tool-tech-admin'
VUE_APP_WS_URL = '/tool-tech-admin/websocket'
# 文档在线预览服务
VUE_APP_TOOL_TECH_FILE_VIEW_API = 'http://localhost:8012/tool-tech-file-view'
VUE_APP_TOOL_TECH_FILE_VIEW_API = '/tool-tech-file-view'
# 流程管理服务地址
VUE_APP_WORKFLOW_MANAGE_URL = 'http://localhost:8085/ebpm-process-manage'
VUE_APP_WORKFLOW_MANAGE_URL = '/ebpm-process-manage'

View File

@ -1,5 +1,5 @@
# 页面标题
VUE_APP_TITLE = 技术交流平台
VUE_APP_TITLE = 工具管理及技术交流平台
NODE_ENV = production

View File

@ -75,7 +75,7 @@ body #app .hideSidebar .sidebar-container {
width: 65px !important;
}
body #app .openSidebar .sidebar-container {
width:180px !important;
width:220px !important;
}
body #app .sidebar-container .nest-menu .el-sub-menu>.el-sub-menu__title,
body #app .sidebar-container .el-sub-menu .el-menu-item {
@ -344,7 +344,7 @@ body #app .hideSidebar .main-container {
margin-left: 65px;
}
body #app .main-container {
margin-left: 180px;
margin-left: 220px;
background:#f9fafe;
background-size:100%;
}

View File

@ -25,7 +25,7 @@
<el-form-item>
<el-radio v-model='radioValue' :label="4">
指定
<el-select clearable v-model="checkboxList" placeholder="可多选" multiple style="width:100%">
<el-select clearable v-model="checkboxList" placeholder="可多选" multiple ·>
<el-option v-for="item in 24" :key="item" :value="item-1">{{item-1}}</el-option>
</el-select>
</el-radio>

View File

@ -35,8 +35,8 @@ export default {
},
data() {
return {
// title: "",
title: process.env.VUE_APP_TITLE,
// title: process.env.VUE_APP_TITLE,
logo: logoImg
}
}

View File

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<el-card>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="70px">
<div class="search">
<div class="sl">
<el-form-item label="文档编号" prop="docCode">
@ -21,7 +21,7 @@
/>
</el-form-item>
<el-form-item label="文档类别" prop="docType">
<el-select v-model="queryParams.docType" placeholder="请选择">
<el-select v-model="queryParams.docType" placeholder="请选择" @change="handleQuery">
<el-option
v-for="dict in dict.type.doc_class"
:key="dict.value"
@ -30,21 +30,8 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="负责人" prop="docPrincipals">
<el-input
v-model="queryParams.docPrincipals"
placeholder="请输入负责人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="归属单位" prop="docRespDept">
<treeselect v-model="queryParams.docRespDept" :options="deptOptions"
placeholder="请选择归属单位"
:show-count="true" style="width: 150px"/>
</el-form-item>-->
<el-form-item label="文档来源" prop="docSource">
<el-select v-model="queryParams.docSource" placeholder="请选择" >
<el-select v-model="queryParams.docSource" placeholder="请选择" @change="handleQuery">
<el-option
v-for="dict in dict.type.doc_source"
:key="dict.value"
@ -53,16 +40,6 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="docStatus">
<el-select v-model="queryParams.docStatus" placeholder="请选择" >
<el-option
v-for="dict in dict.type.doc_upload_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
@ -71,8 +48,34 @@
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="handleQuery"
></el-date-picker>
</el-form-item>
<el-form-item label="负责人" prop="docPrincipals">
<el-input
v-model="queryParams.docPrincipals"
placeholder="请输入负责人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="归属单位" prop="docRespDept">
<treeselect v-model="queryParams.docRespDept" :options="deptOptions"
placeholder="请选择归属单位"
:show-count="true" style="width: 150px"/>
</el-form-item>-->
<el-form-item label="状态" prop="docStatus">
<el-select v-model="queryParams.docStatus" placeholder="请选择" @change="handleQuery">
<el-option
v-for="dict in dict.type.doc_upload_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</div>
<div class="sr">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@ -148,9 +151,20 @@
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="180">
<template slot-scope="scope" v-if="scope.row.roleId !== 1">
<el-table-column label="操作" align="center" width="180" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
v-if="previewAuth(scope.row)"
@click="handlePreview(scope.row)"
v-hasPermi="['document:preview']"
>预览</el-button>
<el-button type="text" icon="el-icon-download" @click="handleDownload(scope.row)"
v-if="scope.row.downloadStatus"
v-loading="loadingDownload">下载</el-button>
<!-- <el-button
size="mini"
type="text"
icon="el-icon-edit"
@ -159,14 +173,6 @@
v-hasPermi="['document:edit']"
>编辑</el-button>
<el-button type="text" icon="el-icon-info" @click="handleDetail(scope.row)">详情</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-view"
v-if="previewAuth(scope.row)"
@click="handlePreview(scope.row)"
v-hasPermi="['document:preview']"
>预览</el-button>
<el-button
size="mini"
type="text"
@ -174,10 +180,16 @@
v-if="scope.row.docStatus != 'yfb' && scope.row.docStatus != 'shz'"
@click="handleDelete(scope.row)"
v-hasPermi="['document:remove']"
>删除</el-button>
<el-button type="text" icon="el-icon-download" @click="handleDownload(scope.row)"
v-if="scope.row.downloadStatus"
v-loading="loadingDownload">下载</el-button>
>删除</el-button>-->
<el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right" >更多</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="handleEdit" icon="el-icon-edit" v-if="scope.row.docStatus != 'yfb' && scope.row.docStatus != 'shz'">编辑</el-dropdown-item>
<el-dropdown-item command="handleDelete" icon="el-icon-delete" v-if="scope.row.docStatus != 'yfb' && scope.row.docStatus != 'shz'">删除</el-dropdown-item>
<el-dropdown-item command="handleDetail" icon="el-icon-info" >详情</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
@ -231,24 +243,25 @@
<!-- 工具导出对话框 -->
<el-drawer :visible.sync="exportDrawerOpen" size="75%" :show-close="false">
<template #title>
<span class="title">导出
<el-select v-model="statevalue" placeholder="请选择要导出的格式">
<el-option v-for="item in stateoptions" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</span>
<div class="drawer-head-btn">
<el-button type="primary" @click="handleExport">提交</el-button>
<el-button @click="exportDrawerOpen=false">取消</el-button>
</div><!--drawer-head-btn 抽屉顶部按钮区域-->
</template>
<el-dialog title="导出" :visible.sync="exportDrawerOpen" width="980px" append-to-body>
<div class="el-form-border">
<el-form ref="form" label-width="200px">
<el-form ref="exportFrom" label-width="180px">
<el-row>
<el-col :span="24">
<el-form-item label="导出格式">
<el-radio-group v-model="statevalue">
<el-radio v-for="item in stateoptions" :key="item.value" :label="item.value" >{{item.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div><!--el-form-border 表单-->
<div class="el-form-border">
<el-form ref="form" label-width="180px">
<el-row>
<el-col :span="24">
<el-form-item label="选择需要导出的字段信息">
<el-form-item label="导出字段">
<el-checkbox-group v-model="checkList">
<el-checkbox label="docCode">文档编号</el-checkbox>
<el-checkbox label="docName">文档名称</el-checkbox>
@ -265,7 +278,12 @@
</el-row>
</el-form><!--el-form-->
</div><!--el-form-border 表单-->
</el-drawer><!--el-drawer 导出抽屉-->
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleExport"> </el-button>
<el-button @click="exportDrawerOpen=false"> </el-button>
</span>
</el-dialog>
<!-- <upload-progress/>-->
</div>
</template>
@ -587,7 +605,6 @@ export default {
toolId: row.toolId
}
addCount(formData).then(res => {
console.info("res==========", res)
});
}
setTimeout(()=>{
@ -666,7 +683,23 @@ export default {
},
handleBeforeClose() {
this.viewDialogOpen = false
}
},
//
handleCommand(command, row) {
switch (command) {
case "handleEdit":
this.handleEdit(row);
break;
case "handleUpdate":
this.handleUpdate(row);
break;
case "handleDelete":
this.handleDelete(row);
break;
default:
break;
}
},
}
};

View File

@ -129,19 +129,26 @@ export default {
self.pageloading = true
getStatistics(this.queryParams).then(res => {
console.info("res===========", res)
if(res.data){
const countType = JSON.parse(JSON.stringify(res.data.countType)).filter(item => item.name)
//
self.toolTypeData = JSON.parse(JSON.stringify(res.data.countType))
self.toolTypeData = countType
self.toolTypeData.forEach(item => {
self.toolTypeLegendData.push(item.name)
if(item && item.name){
self.toolTypeLegendData.push(item.name)
}
})
const countSource = JSON.parse(JSON.stringify(res.data.countSource)).filter(item => item.name)
//
self.toolSourceData = JSON.parse(JSON.stringify(res.data.countSource))
self.toolSourceData = countSource
self.toolSourceData.forEach(item => {
self.toolSourceLegendData.push(item.name)
if(item && item.name){
self.toolSourceLegendData.push(item.name)
}
})
self.isPieChart= true
self.pageloading= false

View File

@ -37,6 +37,7 @@
<el-button type="primary" @click="setAllMarkedRead">全部标记已读</el-button>
</div><!--operate 操作按钮-->
<el-table v-loading="loading" :data="tableList">
<el-table-column type="index" label="序号" width="50" />
<el-table-column label="消息内容" prop="content" min-width="120" />
<el-table-column label="接收时间" prop="createTime" :show-overflow-tooltip="true" min-width="120"/>
<el-table-column label="消息状态" prop="states" :show-overflow-tooltip="true" min-width="80" >
@ -47,11 +48,12 @@
</template>
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="100">
<el-table-column label="操作" align="center" min-width="100" fixed="right">
<template v-slot="{ row }">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
v-if="row.states == '1'"
@click="markRead(row)"
>标记已读</el-button>

View File

@ -7,12 +7,12 @@
<!-- -->
<div class="tjbox2" v-if="isPieChart">
<PieChart
height="207px"
height="285px"
:data="toolTypeData"
:legendData="toolTypeLegendData"
legendBottom="5"
chartRef="toolType"
:radius="50"
:radius="['40%', '70%']"
/>
</div>
</el-card><!--el-card-->
@ -22,7 +22,7 @@
<div slot="header" class="clearfix"><span class="tline">工具状态统计</span></div>
<div class="tjbox2" v-if="isPieChart">
<PieChart
height="207px"
height="285px"
:data="toolStatusData"
:legendData="toolStatusLegendData"
legendBottom="5"
@ -38,7 +38,7 @@
<div slot="header" class="clearfix"><span class="tline">工具来源统计</span></div>
<div class="tjbox2" v-if="isPieChart">
<PieChart
height="207px"
height="285px"
:data="toolSourceData"
:legendData="toolSourceLegendData"
legendBottom="5"
@ -54,13 +54,12 @@
<el-card>
<div slot="header" class="clearfix"><span class="tline">工具下载</span></div>
<div class="tjbox2">
<el-form label-width="80px" ref="queryForm">
<el-form label-width="70px" ref="queryForm">
<div class="search">
<div class="sl">
<el-form-item label="下载时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
@ -68,6 +67,22 @@
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item label="工具编号" prop="toolCode">
<el-input
v-model="queryParams.toolCode"
placeholder="请输入工具编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工具名称" prop="toolName">
<el-input
v-model="queryParams.toolName"
placeholder="请输入工具名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</div>
<div class="sr">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
@ -79,9 +94,10 @@
</div>
<div class="rt">
<el-table v-loading="downLoading" :data="toolDownStatList">
<el-table-column type="index" label="序号" width="50" />
<el-table-column label="工具编号" align="center" key="toolCode" prop="toolCode" />
<el-table-column label="工具名称" align="center" key="toolName" prop="toolName" :show-overflow-tooltip="true" />
<el-table-column label="下载" align="center" key="toolDownNum" prop="toolDownNum" width="120" />
<el-table-column label="下载数" align="center" key="toolDownNum" prop="toolDownNum" width="120" />
<el-table-column
label="操作"
align="center"
@ -178,6 +194,8 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
toolCode: null,
toolName: null,
},
queryParams1: {
pageNum: 1,
@ -207,7 +225,6 @@ export default {
let self = this
this.loading = true
userDownList(this.addDateRange(this.queryParams1)).then(res => {
console.info("res=========", res)
self.total = res?.total
self.toolDownDetailStatList = res?.rows || []
self.loading = false
@ -234,7 +251,6 @@ export default {
let self = this
this.downLoading = true
listCount(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
console.info("res=========", res)
self.total = res?.total
self.toolDownStatList = res?.rows || []
self.downLoading = false
@ -260,25 +276,33 @@ export default {
self.pageloading = true
getStatistics(this.queryParams).then(res => {
console.info("res===========", res)
if(res.data){
const countToolType = JSON.parse(JSON.stringify(res.data.countToolType)).filter(item => item.name)
//
self.toolTypeData = JSON.parse(JSON.stringify(res.data.countToolType))
self.toolTypeData = countToolType
self.toolTypeData.forEach(item => {
self.toolTypeLegendData.push(item.name)
if(item && item.name){
self.toolTypeLegendData.push(item.name)
}
})
const recordStatus = JSON.parse(JSON.stringify(res.data.recordStatus)).filter(item => item.name)
//
self.toolStatusData = JSON.parse(JSON.stringify(res.data.recordStatus))
self.toolStatusData = recordStatus
self.toolStatusData.forEach(item => {
self.toolStatusLegendData.push(item.name)
if(item && item.name){
self.toolStatusLegendData.push(item.name)
}
})
const toolSource = JSON.parse(JSON.stringify(res.data.toolSource)).filter(item => item.name)
//
self.toolSourceData = toolSource
self.toolSourceData.forEach(item => {
if(item && item.name){
self.toolSourceLegendData.push(item.name)
}
})
//
self.toolSourceData = JSON.parse(JSON.stringify(res.data.toolSource))
self.toolSourceData.forEach(item => {
self.toolSourceLegendData.push(item.name)
})
self.isPieChart= true
self.pageloading= false
}

View File

@ -2,61 +2,69 @@
<div class="app-container">
<el-card>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="字典名称" prop="dictName">
<el-input
v-model="queryParams.dictName"
placeholder="请输入字典名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="字典类型" prop="dictType">
<el-input
v-model="queryParams.dictType"
placeholder="请输入字典类型"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="字典状态"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<div class="search">
<div class="sl">
<el-form-item label="字典名称" prop="dictName">
<el-input
v-model="queryParams.dictName"
placeholder="请输入字典名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="字典类型" prop="dictType">
<el-input
v-model="queryParams.dictType"
placeholder="请输入字典类型"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="字典状态"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
</div>
<div class="sr">
<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>
</div>
</div>
<!-- <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-item>-->
</el-form>
</el-card>
<el-card class="lrtt">
<div class="rt">
<div class="operate">
<!--
<!--
<el-button
type="primary"
plain
@ -81,7 +89,7 @@
@click="handleDelete"
v-hasPermi="['system:dict:remove']"
>删除</el-button>-->
<!--
<!--
<el-button
plain
icon="el-icon-download"
@ -119,7 +127,7 @@
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<!--
<!--
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button

View File

@ -2,49 +2,53 @@
<div class="app-container">
<el-card>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="参数名称" prop="configName">
<el-input
v-model="queryParams.configName"
placeholder="请输入参数名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="参数键名" prop="configKey">
<el-input
v-model="queryParams.configKey"
placeholder="请输入参数键名"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="系统内置" prop="configType">
<el-select v-model="queryParams.configType" placeholder="系统内置" clearable>
<el-option
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</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>
<div class="search">
<div class="sl">
<el-form-item label="参数名称" prop="configName">
<el-input
v-model="queryParams.configName"
placeholder="请输入参数名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="参数键名" prop="configKey">
<el-input
v-model="queryParams.configKey"
placeholder="请输入参数键名"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="系统内置" prop="configType">
<el-select v-model="queryParams.configType" placeholder="系统内置" clearable>
<el-option
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
</div>
<div class="sr">
<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>
</div>
</div>
</el-form>
</el-card>

View File

@ -2,28 +2,32 @@
<div class="app-container">
<el-card>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form-item label="部门名称" prop="deptName">
<el-input
v-model="queryParams.deptName"
placeholder="请输入部门名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="部门状态" clearable>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</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>
<div class="search">
<div class="sl">
<el-form-item label="部门名称" prop="deptName">
<el-input
v-model="queryParams.deptName"
placeholder="请输入部门名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="部门状态" clearable>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</div>
<div class="sr">
<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>
</div>
</div>
</el-form>
</el-card>
<el-card class="lrtt">

View File

@ -2,54 +2,62 @@
<div class="app-container">
<el-card>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="字典名称" prop="dictName">
<el-input
v-model="queryParams.dictName"
placeholder="请输入字典名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="字典类型" prop="dictType">
<el-input
v-model="queryParams.dictType"
placeholder="请输入字典类型"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="字典状态"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<div class="search">
<div class="sl">
<el-form-item label="字典名称" prop="dictName">
<el-input
v-model="queryParams.dictName"
placeholder="请输入字典名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="字典类型" prop="dictType">
<el-input
v-model="queryParams.dictType"
placeholder="请输入字典类型"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="字典状态"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
</div>
<div class="sr">
<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>
</div>
</div>
<!-- <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-item>-->
</el-form>
</el-card>
@ -80,7 +88,7 @@
@click="handleDelete"
v-hasPermi="['system:dict:remove']"
>删除</el-button>
<!--
<!--
<el-button
plain
icon="el-icon-download"

View File

@ -2,28 +2,36 @@
<div class="app-container">
<el-card>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form-item label="菜单名称" prop="menuName">
<el-input
v-model="queryParams.menuName"
placeholder="请输入菜单名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="菜单状态" clearable>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<div class="search">
<div class="sl">
<el-form-item label="菜单名称" prop="menuName">
<el-input
v-model="queryParams.menuName"
placeholder="请输入菜单名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="菜单状态" clearable>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</div>
<div class="sr">
<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>
</div>
</div>
<!-- <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-item>-->
</el-form>
</el-card>
<el-card class="lrtt">

View File

@ -2,36 +2,41 @@
<div class="app-container">
<el-card>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="公告标题" prop="noticeTitle">
<el-input
v-model="queryParams.noticeTitle"
placeholder="请输入公告标题"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="操作人员" prop="createBy">
<el-input
v-model="queryParams.createBy"
placeholder="请输入操作人员"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="类型" prop="noticeType">
<el-select v-model="queryParams.noticeType" placeholder="公告类型" clearable>
<el-option
v-for="dict in dict.type.sys_notice_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</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>
<div class="search">
<div class="sl">
<el-form-item label="公告标题" prop="noticeTitle">
<el-input
v-model="queryParams.noticeTitle"
placeholder="请输入公告标题"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="操作人员" prop="createBy">
<el-input
v-model="queryParams.createBy"
placeholder="请输入操作人员"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="类型" prop="noticeType">
<el-select v-model="queryParams.noticeType" placeholder="公告类型" clearable>
<el-option
v-for="dict in dict.type.sys_notice_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</div>
<div class="sr">
<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>
</div>
</div>
</el-form>
</el-card>

View File

@ -2,36 +2,40 @@
<div class="app-container">
<el-card>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="岗位编码" prop="postCode">
<el-input
v-model="queryParams.postCode"
placeholder="请输入岗位编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="岗位名称" prop="postName">
<el-input
v-model="queryParams.postName"
placeholder="请输入岗位名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="岗位状态" clearable>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</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>
<div class="search">
<div class="sl">
<el-form-item label="岗位编码" prop="postCode">
<el-input
v-model="queryParams.postCode"
placeholder="请输入岗位编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="岗位名称" prop="postName">
<el-input
v-model="queryParams.postName"
placeholder="请输入岗位名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="岗位状态" clearable>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</div>
<div class="sr">
<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>
</div>
</div>
</el-form>
</el-card>
<el-card class="lrtt">

View File

@ -2,54 +2,58 @@
<div class="app-container">
<el-card>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form-item label="角色名称" prop="roleName">
<el-input
v-model="queryParams.roleName"
placeholder="请输入角色名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="权限字符" prop="roleKey">
<el-input
v-model="queryParams.roleKey"
placeholder="请输入权限字符"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="角色状态"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</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>
<div class="search">
<div class="sl">
<el-form-item label="角色名称" prop="roleName">
<el-input
v-model="queryParams.roleName"
placeholder="请输入角色名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="权限字符" prop="roleKey">
<el-input
v-model="queryParams.roleKey"
placeholder="请输入权限字符"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="角色状态"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
</div>
<div class="sr">
<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>
</div>
</div>
</el-form>
</el-card>
<el-card class="lrtt">
@ -79,7 +83,7 @@
@click="handleDelete"
v-hasPermi="['system:role:remove']"
>删除</el-button>
<!--
<!--
<el-button
plain
icon="el-icon-download"

View File

@ -2,54 +2,58 @@
<div class="app-container">
<el-card>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="用户名称" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="queryParams.phonenumber"
placeholder="请输入手机号码"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="用户状态"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</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>
<div class="search">
<div class="sl">
<el-form-item label="用户名称" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="queryParams.phonenumber"
placeholder="请输入手机号码"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="用户状态"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
</div>
<div class="sr">
<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>
</div>
</div>
</el-form>
</el-card>
<el-card class="lrtt">
@ -101,7 +105,7 @@
@click="handleDelete"
v-hasPermi="['system:user:remove']"
>删除</el-button>
<!--
<!--
<el-button
plain
icon="el-icon-upload2"

View File

@ -7,9 +7,9 @@
<span>个人信息</span>
</div>
<div>
<div class="text-center">
<!-- <div class="text-center">
<userAvatar />
</div>
</div>-->
<ul class="list-group list-group-striped">
<li class="list-group-item">
<svg-icon icon-class="user" />用户名称
@ -19,10 +19,10 @@
<svg-icon icon-class="phone" />手机号码
<div class="pull-right">{{ user.phonenumber }}</div>
</li>
<li class="list-group-item">
<!-- <li class="list-group-item">
<svg-icon icon-class="email" />用户邮箱
<div class="pull-right">{{ user.email }}</div>
</li>
</li>-->
<li class="list-group-item">
<svg-icon icon-class="tree" />所属部门
<div class="pull-right" v-if="user.dept">{{ user.dept.deptName }} / {{ postGroup }}</div>

View File

@ -2,13 +2,13 @@
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="用户昵称" prop="nickName">
<el-input v-model="form.nickName" maxlength="30" />
</el-form-item>
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
<el-input v-model="form.phonenumber" maxlength="11" />
</el-form-item>
<el-form-item label="邮箱" prop="email">
<!-- <el-form-item label="邮箱" prop="email">
<el-input v-model="form.email" maxlength="50" />
</el-form-item>
</el-form-item>-->
<el-form-item label="性别">
<el-radio-group v-model="form.sex">
<el-radio label="0"></el-radio>

View File

@ -119,7 +119,6 @@
this.getDocList()
},
handlePriew(row){
console.info("1111111==============")
this.previewUrl = process.env.VUE_APP_TOOL_TECH_FILE_VIEW_API + '/onlinePreview?url=' + encodeURIComponent(Base64.encode(process.env.VUE_APP_BASE_API + row.docUrl));
this.viewDialogTitle = '文档在线预览'
this.viewDialogOpen = true;
@ -148,7 +147,6 @@
toolId: this.toolDetail.toolId
}
addCount(formData).then(res => {
console.info("res==========", res)
});
}

View File

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<el-card>
<el-form :model="queryParams" label-width="80px" ref="queryForm">
<el-form :model="queryParams" label-width="70px" ref="queryForm">
<div class="grab" id="add">
<div class="search">
<div class="sl">
@ -21,12 +21,23 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="handleQuery"
></el-date-picker>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="状态"
clearable
style="width: 240px"
@change="handleQuery"
>
<el-option
v-for="dict in dict.type.tool_status"
@ -36,17 +47,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
</div>
<div class="sr">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
@ -128,6 +129,7 @@
<el-table-column
label="操作"
align="center"
fixed="right"
width="250"
class-name="small-padding fixed-width"
>
@ -157,24 +159,25 @@
</el-card><!--el-card-->
<!-- 工具导出对话框 -->
<el-drawer :visible.sync="exoportDrawerOpen" size="75%" :show-close="false">
<template #title>
<span class="title">导出
<el-select v-model="statevalue" placeholder="请选择要导出的格式">
<el-option v-for="item in stateoptions" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</span>
<div class="drawer-head-btn">
<el-button type="primary" @click="handleExport">提交</el-button>
<el-button @click="exoportDrawerOpen=false">取消</el-button>
</div><!--drawer-head-btn 抽屉顶部按钮区域-->
</template>
<el-dialog title="导出" :visible.sync="exoportDrawerOpen" width="980px" append-to-body>
<div class="el-form-border">
<el-form ref="form" label-width="200px">
<el-form ref="exportFrom" label-width="180px">
<el-row>
<el-col :span="24">
<el-form-item label="选择需要导出的字段信息">
<el-form-item label="导出格式">
<el-radio-group v-model="statevalue">
<el-radio v-for="item in stateoptions" :key="item.value" :label="item.value" >{{item.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div><!--el-form-border 表单-->
<div class="el-form-border">
<el-form ref="form" label-width="180px">
<el-row>
<el-col :span="24">
<el-form-item label="导出字段">
<el-checkbox-group v-model="checkList">
<el-checkbox label="toolName">工具名称</el-checkbox>
<el-checkbox label="toolType">工具类别</el-checkbox>
@ -194,7 +197,14 @@
</el-row>
</el-form><!--el-form-->
</div><!--el-form-border 表单-->
</el-drawer><!--el-drawer 导出抽屉-->
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleExport"> </el-button>
<el-button @click="exoportDrawerOpen=false"> </el-button>
</span>
</el-dialog>
<el-drawer
:visible.sync="drawerShow"
@ -538,6 +548,7 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
let self = this
if (this.statevalue == 1) {
let excludeFields = this.columnList.filter(item=>!this.checkList.includes(item))
this.download('/tool/export', {
@ -545,6 +556,9 @@ export default {
downloadCheck:false,
excludeFields:excludeFields,
}, `工具信息数据_${new Date().getTime()}.xlsx`)
setTimeout(() => {
self.exoportDrawerOpen = false;
}, 1000);
}
if (this.statevalue == 2) {
exportWordList(this.queryParams).then(r => {
@ -555,6 +569,9 @@ export default {
}
//publicN
exportDocx('tool.docx', data, `tool.docx`)
setTimeout(() => {
self.exoportDrawerOpen = false;
}, 1000);
} else {
this.$message.error('没有数据');
}

View File

@ -382,11 +382,9 @@
/** 获取详情信息 **/
getDetail(){
let self = this
console.info("self.toolDetail==========", self.toolDetail)
self.detailLoading = true
getTool(self.toolDetail.toolId).then((res) => {
self.detailData = res.data
console.info("res========", res)
/*let formData = res.data;
formData.type = _this.form.type
_this.form = formData*/

View File

@ -3,11 +3,15 @@
<el-card>
<el-form label-width="80px">
<div class="search">
<el-form-item label="流程标题">
<el-input placeholder="输入流程标题" v-model.trim="queryParams.title"></el-input>
</el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh-left" @click="resetQuery">重置</el-button>
<div class="sl">
<el-form-item label="流程标题">
<el-input placeholder="输入流程标题" v-model.trim="queryParams.title"></el-input>
</el-form-item>
</div>
<div class="sr">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh-left" @click="resetQuery">重置</el-button>
</div>
</div><!--search 搜索-->
</el-form><!--el-form-->
</el-card><!--el-card-->