123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793 |
- <template>
- <div class="table_total">
- <div class="table_header">
- <!-- <p>单表</p>
- <el-divider></el-divider> -->
- <div class="table_headerBtun" v-if="queryData.buttonList">
- <el-button :type=" item == 'A' ? 'primary' : item == 'M' ? 'success' : item == 'D' ? 'danger' : 'primary'" :icon="item == 'A' ? 'el-icon-plus' : item == 'M' ? 'el-icon-edit' : item == 'D' ? 'el-icon-delete' : 'el-icon-view'" plain @click="headerBtn(item)" size="small" v-for="(item,index) in queryData.buttonList.split('').filter((res) => {return res!='S'})"
- :key="index +'name'">{{item | btnConversion}}</el-button>
- <el-button v-if="tabnaem == 1" type="warning" plain @click="headerBtn('H')" icon="el-icon-d-arrow-left" size="small" >撤回</el-button>
- </div>
- <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
- <dynamic-forms :type="0" :ref="item.columnName" :config="queryParams" @inputs="changeFn" :formConfig="item"
- v-for="(item,index) in queryData.queryList" :key='index' />
- <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>
- </div>
- <!-- 内容 -->
- <div class="table_nav">
- <el-table stripe v-loading="loading" :data="postList" @selection-change="handleSelectionChange" @row-click="rowclid">
- <el-table-column type="selection" width="45" style="color: red;" align="center" />
- <template v-for="(item, index) in tabData" >
- <el-table-column :width="item.columnName =='message_title'? '200' : tabData.length>13?zjFn(item.columnComment)*19:'auto'" :label="item.columnComment" align="center" :prop="item.columnName" :key="index" show-overflow-tooltip v-if="item.columnName !== 'send_user_id' && item.columnName !== 'message_id' && item.columnName !== 'receive_user_id'">
- <!-- :style="scope.row.list_class" scope.row[scope.column.property] -->
- <template slot-scope="scope" style="width: 100%;" >
- <img class="img_icon" v-if="item.htmlType=='imageUpload' && scope.row[scope.column.property] && scope.row[scope.column.property] !== '[]'" @click="imgBtn(JSON.parse(scope.row[scope.column.property])[0].url)"
- :src="scope.row[scope.column.property] == '[]' ? '' : JSON.parse(scope.row[scope.column.property])[0].url " alt="">
- <span :style="scope.row.list_class" v-else-if="item.htmlType=='imageUpload' && scope.row[scope.column.property] && scope.row[scope.column.property] == '[]'">暂无图片</span>
- <span :style="scope.row.list_class" v-else-if="item.columnName == 'status' ">{{ scope.row[scope.column.property] }}</span>
- <!-- && tabnaem == 'yidu' || tabnaem == 'weidu' -->
- <div v-else-if="item.columnName == 'message_title' && tabnaem == 'yidu' || tabnaem == 'weidu' " @click="titey(scope.row.message_id,scope.row.id)">
- {{scope.row[scope.column.property]}}
- </div>
- <div v-else style="width: 100%;">
- <span v-if="item.fkInfo">{{scope.row[scope.column.property].value}}</span>
- <span v-else>{{scope.row[scope.column.property]}}</span>
- </div>
- </template>
- </el-table-column>
- </template>
- <el-table-column v-if="tabnaem == 1" label="操作" align="center" class-name="small-padding fixed-width">
- <template slot-scope="scope">
- <el-button type="text" :icon="item == 'A' ? 'el-icon-plus' : item == 'M' ? 'el-icon-edit' : item == 'D' ? 'el-icon-delete' : 'el-icon-view'" plain @click.stop="headerBtn(item,scope.row)" size="small" v-for="(item,index) in queryData.buttonList.split('').filter((res) => {return res!='S' && res!='A'})"
- :key="index +'name'">{{item | btnConversion}}</el-button>
- <el-button
- size="mini"
- type="text"
- icon="el-icon-delete"
- @click.stop="rogress(scope.row)"
- >查看进度</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
- @pagination="getList" />
- </div>
- <BigPicture ref="BigPicture" :urls="pir_imgs"></BigPicture>
- <!-- 流程进度 -->
- <el-dialog :close-on-click-modal="false" title="流程进度" :visible.sync="modalShowdu" width="1180px" append-to-body>
- <div style="display: flex;">
- <div style="width: 60%;">
- <el-row :gutter="10" class="mb8">
- <el-col :span="1.5">
- <span style="margin-right: 10px;">未读收文</span>
- <el-button
- type="primary"
- plain
- size="mini"
- @click="eceive"
- >一键催收文</el-button>
- </el-col>
- </el-row>
- <el-table v-loading="loading" :data="listnemd" @selection-change="handleSelectionChange" stripe>
- <el-table-column type="selection" width="55" align="center" />
- <el-table-column label="姓名" align="center" prop="receive_user_name" />
- <el-table-column label="部门" align="center" prop="receive_dept_name" />
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
- <template slot-scope="scope">
- <el-button
- size="mini"
- type="text"
- @click="eceive(scope.row,2)"
- >催收文</el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- <div style="width: 100%; margin-left: 20px;" >
- <el-row :gutter="10" class="mb8">
- <el-col style="margin-bottom: 8px;" :span="1.5">
- <span >已读收文</span>
- </el-col>
- </el-row>
- <el-table :border="false" v-loading="loading" :data="listnemrt" >
- <el-table-column label="姓名" align="center" prop="receive_user_name" />
- <el-table-column label="部门" align="center" prop="receive_dept_name" />
- <el-table-column width="180px" label="收文时间" align="center" prop="send_message_time" />
- </el-table>
- </div>
- <Flowshoe :instanceId="instanceId"></Flowshoe>
- </div>
- </el-dialog>
- </div>
- </template>
- <script>
- import {
- tableQuery,
- getQueryList,
- addbjectSave,
- getByTableName,
- delMenu,
- getObject,
- isech
- } from '@/api/system/table.js'
- import Flowshoe from '@/components/flowshoe'
- import { weiduhegw,addbjectSawen } from "@/api/system/isses";
- import {getUserProfile} from "@/api/system/config";
- import {
- mapGetters,
- mapState
- } from "vuex";
- export default {
- name: "index",
- components: {Flowshoe },
- data() {
- return {
- pir_imgs: '', // 图片链接
- // jue:'color: red;',
- tabData: [],
- multiple: true,
- single: true,
- open: false,
- // 遮罩层
- loading: true,
- total: 0,
- // 岗位表格数据
- postList: [],
- // 显示搜索条件
- showSearch: true,
- activeNames: ['1'],
- title: '',
- queryData: {},
- tabName: '',
- form: {
- table: '',
- objId: -1,
- fixedData: {
- condition: {
- }
- }
- },
- // 查询参数
- queryParams: {
- table: '',
- pageNo: 1,
- isUi: false,
- pageSize: 10,
- orderBy: 'create_time desc',
- fixedData: {
- condition: {
- }
- }
- },
- tabnaem:'',
- opeid:0,
- modalShowdu:false,
- listnemd:[],
- listnemrt:[],
- nread:{
- "table": "boman_message_receive",
- "orderBy": "create_time desc",
- pageNo:1,
- pageSize:30,
- fixedData:{
- condition:{
- message_id:0,
- status:'N',
- visible:'Y',
- send_user_id:0,
- }
- }
- },
- nreadtwo:{
- "table": "boman_message_receive",
- "orderBy": "create_time desc",
- pageNo:1,
- pageSize:30,
- fixedData:{
- condition:{
- message_id:0,
- status:'Y',
- visible:'Y',
- send_user_id:0,
- }
- }
- },
- eceivelist:{
- tableName: "urge_read_message",
- objId:-1,
- dataList:[{
- message_id:0,
- message_title:'',
- send_user_name:'',
- message_time:'',
- recieve_user_id:'',
- recieve_user_name:''
- }]
- },
- instanceId: 0,
- };
- },
- filters: {
- btnConversion(val) {
- switch (val) {
- case 'A':
- return '新增';
- case 'M':
- return '修改';
- case 'D':
- return '删除';
- case 'Q':
- return '查看';
- case 'S':
- return '提交';
- case 'U':
- return '反提交';
- case 'I':
- return '导入';
- case 'E':
- return '导出';
- }
- }
- },
- computed: {
- ...mapGetters(["sidebarRouters", "sidebar", "tabIndex"]),
- },
- mounted() {
- this.getUser()
- const route = this.$route;
- const {
- meta,
- path,
- sysTableName
- } = route;
- let items = this.sidebarRouters.filter(res => {
- return res.path == ('/' + path.split('/')[1])
- })[0].children.filter(res => {
- return res.path == path.split('/')[2]
- })[0]
- let naem = route.name.split('/')
- let nmaelist = naem[naem.length - 1]
- this.tabnaem = nmaelist
- console.log(nmaelist)
- // this.tabName = items.sysTableName
- this.tabName = naem[naem.length - 2]
- this.queryParams.table = naem[naem.length - 2]
- console.log( route)
- if(nmaelist == 1){
- this.queryParams.fixedData.condition.message_situation = nmaelist
- }else if(nmaelist == 'shouwen'){
- // this.queryParams.fixedData.condition.receive_user_id = this.queryParams.fixedData.condition.send_user_id
- // this.queryParams.fixedData.condition.send_user_id = undefined
- // this.queryParams.fixedData.condition.visible = 'Y'
- }else if(nmaelist == 'shenqingzhong'){
- this.queryParams.fixedData.condition.status = 4
- }else if(nmaelist == 2){
- this.queryParams.fixedData.condition.message_situation = 3
- }
- else if(nmaelist == 3){
- this.queryParams.fixedData.condition.message_situation = 4
- }
- else{
- this.queryParams.fixedData.condition.message_situation = undefined
- }
- // this.queryParams.fixedData.condition.message_situation
- this.form.table = items.sysTableName
- },
- methods: {
- zjFn(str) {
- let bytesCount = 0;
- for (var i = 0; i < str.length; i++)
- {
- var c = str.charAt(i);
- if (/^[\u0000-\u00ff]$/.test(c)) //匹配双字节
- {
- bytesCount += 1;
- }
- else
- {
- bytesCount += 2;
- }
- }
- return bytesCount
- },
- imgBtn(url) {
- this.pir_imgs = url
- this.$refs.BigPicture.hidden.status = true
- },
- routerFn(id, tables,index) {
- console.log(this.tabnaem)
- if (this.tabnaem == 'shouwen' ) {
- console.log(34)
- this.$router.push({
- path: '/business/collection',
- query: {
- id,
- tables,
- tabname:'shouwen'
- },
- })
- } else if (this.tabnaem == 1) {
- this.$router.push({
- path: '/business/issue',
- query: {
- id,
- tables,
- tabname:this.tabnaem
- },
- })
- } else if(this.tabnaem == 'yidu' || this.tabnaem == 'weidu'){
- this.$router.push({
- path: '/system/pdf',
- query: {
- id:this.opeid,
- index:id,
- tables:this.tabName,
- teiwog:this.tabnaem
- },
- })
- }
- else {
- this.$router.push({
- path: '/business/issue',
- query: {
- id,
- tables,
- },
- })
- }
- },
- headerBtn(item,inhe) {
- console.log(inhe)
- const _this = this
- switch (item) {
- case 'A':
- {
- this.routerFn(-1, this.tabName)
- return
- }
- case 'M':
- {
- if (this.single && inhe == undefined) {
- this.msgInfo('请勾选一条信息')
- return
- }
- // const id = inhe.id || this.ids.join(',')
- let id = []
- if(inhe !== undefined){
- let jie = []
- jie.push(inhe.id)
- id = jie
- }else{
- id = _this.ids
- console.log(id)
- }
- this.routerFn(id, this.tabName)
- return
- }
- case 'H':
- {
- if (this.multiple) {
- this.msgInfo('请勾选一条信息')
- return
- }
- // _this.ids = _this.ids.join(',')
- const id = _this.ids.join(',')
- this.$confirm('是否确认撤回数据项?', "警告", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- }).then(function() {
- console.log(id)
- return isech(
- id
- );
- }).then(() => {
- _this.getList();
- _this.msgSuccess("撤回成功");
- })
- return
- }
- case 'D':
- {
- if (this.multiple && inhe == undefined) {
- this.msgInfo('请勾选一条信息')
- return
- }
- // console.log(_this.ids.join(','))
- let id = []
- if(inhe !== undefined){
- let jie = []
- jie.push(inhe.id)
- id = jie
- }else{
- id = _this.ids
- console.log(id)
- }
- console.log(id)
- this.$confirm('是否确认删除?', "警告", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- }).then(function() {
- return delMenu({
- table: _this.tabName,
- idList: id
- });
- }).then(() => {
- _this.getList();
- _this.msgSuccess("删除成功");
- })
- return
- }
- case 'Q':
- {
- if (this.single) {
- this.msgInfo('请勾选一条信息')
- return
- }
- // const id = this.idsty.join(',')
- const id = this.ids.join(',')
- const index = this.idsty.join(',')
- this.opeid = index
- // const id = -1
- this.routerFn(id, this.tabName)
- // this.handleQuery()
- return
- }
- case 'S':
- {
- return
- }
- case 'U':
- {
- return
- }
- case 'E':
- {
- this.handleExport()
- return
- }
- }
- },
- rowclid(row){
- console.log(row)
- this.opeid = row.message_id
- this.routerFn(row.id,this.tabName)
- },
- // 取消按钮
- cancel() {
- this.open = false;
- this.reset();
- },
- /** 导出按钮操作 */
- handleExport() {
- this.download('system/post/export', {
- ...this.queryParams
- }, `post_${new Date().getTime()}.xlsx`)
- },
- // 多选框选中数据
- handleSelectionChange(selection) {
- console.log(selection)
- this.ids = selection.map(item => item.id)
- this.idsty = selection.map(item => item.message_id)
- this.idee = selection
- this.single = selection.length != 1
- this.multiple = !selection.length
- },
- changeFn(obj) {
- for (let key in obj) {
- this.queryParams.fixedData.condition[key] = obj[key]
- }
- },
- // 表单重置
- reset() {
- this.form = {
- table: this.tabName,
- objId: '',
- fixedData: {
- condition: {
- }
- },
- };
- this.resetForm("form");
- },
- resetQuery() {
- this.resetForm("queryForm");
- this.handleQuery();
- },
- /** 搜索按钮操作 */
- handleQuery() {
- this.queryParams.pageNo = 1;
- this.grabFn(this.queryData.queryList, this.queryParams.fixedData.condition)
- this.getList();
- },
- // 抓取参数
- grabFn(arr, parForm) {
- for (let item of arr) {
- if (item.htmlType == 'checkbox' || item.htmlType == 'imageUpload' || item.htmlType == 'fileUpload') {
- if (this.$refs[item.columnName][0].config.length) {
- parForm[item.columnName] = this.$refs[item.columnName][0].config
- }
- } else {
- parForm[item.columnName] = this.$refs[item.columnName][0].config[item.columnName]
- }
- }
- },
- getList() {
- getQueryList(this.queryParams).then(response => {
- this.total = response.data.total;
- this.tabData = response.data.tableHeadList
- this.postList = response.data.rows;
- for(var i = 0 ; i < this.postList.length; i++){
- console.log(this.postList[i].leavefrom_photo == '[]')
- }
- this.loading = false;
- });
- },
- init() {
- tableQuery({
- table: this.tabName,
- }).then(res => {
- let data = res.data
- this.queryData = data
- let buy = data.buttonList
- if(this.tabnaem == 1 || this.tabnaem == 'shouwen'){
- console.log(this.tabnaem)
- console.log(buy)
- this.queryData.buttonList = buy
- if(this.tabnaem == 'shouwen'){
- // this.queryData.buttonList = buy + 'Q'
- this.queryData.buttonList = buy
- }
- }else{
- this.queryData.buttonList = 'Q'
- }
- })
- },
- handleChange(val) {},
- // 点击标题
- titey(id,index){
- console.log(id)
- this.$router.push({
- path: '/system/pdf',
- query: {
- id,
- index,
- tables:this.tabName,
- teiwog:this.tabnaem
- },
- })
- },
- // 用户信息
- getUser() {
- getUserProfile().then(response => {
- if(this.tabnaem == 'yidu'){
- this.queryParams.fixedData.condition.visible = 'Y'
- this.queryParams.fixedData.condition.status = 'Y'
- this.queryParams.fixedData.condition.receive_user_id = response.data.id
- this.queryParams.fixedData.condition.send_user_id = undefined
- console.log(this.queryParams.fixedData.condition.send_user_id)
- }else if(this.tabnaem == 'weidu'){
- this.queryParams.fixedData.condition.visible = 'Y'
- this.queryParams.fixedData.condition.status = 'N'
- this.queryParams.fixedData.condition.receive_user_id = response.data.id
- this.queryParams.fixedData.condition.send_user_id = undefined
- }else if(this.tabnaem == 'shouwen'){
- // this.queryParams.fixedData.condition.visible = 'Y'
- // this.queryParams.fixedData.condition.receive_user_id = response.data.id
- this.queryParams.fixedData.condition.send_user_id = undefined
- }
- else{
- this.queryParams.fixedData.condition.send_user_id = response.data.id
- }
- // this.queryParams.fixedData.condition.receive_user_id = response.data.id
- // this.user = response.data;
- // this.getLisalendar()
- // this.getLismemorandum()
- this.nread.fixedData.condition.send_user_id = response.data.id
- this.nreadtwo.fixedData.condition.send_user_id = response.data.id
- this.init();
- this.getList();
- });
- },
- // 查看流程进度
- rogress(row){
- this.modalShowdu = true
- this.instanceId = row.id
- this.nread.fixedData.condition.message_id = row.id
- this.nreadtwo.fixedData.condition.message_id = row.id
- this.querjtgoe = row
- this.weiug()
- this.yidue()
- },
- // 查看未读
- weiug(){
- this.loading = true;
- weiduhegw(this.nread).then(res => {
- console.log(res)
- this.loading = false
- this.listnemd = res.data.rows
- })
- },
- // 查看已读
- yidue(){
- this.loading = true;
- weiduhegw(this.nreadtwo).then(res => {
- console.log(res)
- this.loading = false
- this.listnemrt = res.data.rows
- })
- },
- // 催收文
- eceive(row,index){
- if (this.multiple && index == undefined) {
- this.msgInfo('请勾选一条信息')
- return
- }
- console.log(row)
- const id = row.id || this.ids.join(',')
- let huew = []
- // if(row !== undefined){
- // this.idee = []
- // }
- if(this.idee.length > 0){
- console.log(345)
- for(var j = 0 ; j < this.idee.length; j++ ){
- this.eceivelist.dataList[j] = {message_id:0,receive_user_id:0,receive_user_name:'',message_title:'',send_user_name:'',send_user_id:0,message_time:'',}
- this.eceivelist.dataList[j].message_id = this.idee[j].message_id
- this.eceivelist.dataList[j].receive_user_id = this.idee[j].receive_user_id
- this.eceivelist.dataList[j].receive_user_name = this.idee[j].receive_user_name
- this.eceivelist.dataList[j].message_title = this.querjtgoe.message_title
- this.eceivelist.dataList[j].send_user_name = this.querjtgoe.send_user_name
- this.eceivelist.dataList[j].send_user_id = this.querjtgoe.send_user_id
- this.eceivelist.dataList[j].message_time = this.querjtgoe.message_time
- }
- }else{
- this.eceivelist.dataList =[{message_id:0,receive_user_id:0,receive_user_name:'',message_title:'',send_user_name:'',send_user_id:0,message_time:''}]
- this.eceivelist.dataList[0].message_id = row.message_id
- this.eceivelist.dataList[0].receive_user_id = row.receive_user_id
- this.eceivelist.dataList[0].receive_user_name = row.receive_user_name
- this.eceivelist.dataList[0].message_title = this.querjtgoe.message_title
- this.eceivelist.dataList[0].send_user_name = this.querjtgoe.send_user_name
- this.eceivelist.dataList[0].send_user_id = this.querjtgoe.send_user_id
- this.eceivelist.dataList[0].message_time = this.querjtgoe.message_time
- }
- console.log(this.eceivelist)
- this.adege()
- // this.querjtgoe
- // this.eceivelist.fixedData.message_id = row.message_id
- // this.eceivelist.fixedData.recieve_user_id = row.recieve_user_id
- // this.eceivelist.fixedData.recieve_user_name = row.recieve_user_name
- },
- // 催办接口
- adege(){
- addbjectSawen(this.eceivelist).then(res =>{
- console.log(res)
- if(res.code == 200){
- this.msgSuccess('提交成功');
- this.weiug()
- }
- })
- },
- },
- };
- </script>
- <style lang="scss">
- .el-table .cell, .el-table th div {
- // padding-right: 0;
- }
- .img_icon {
- width: 120px;
- height: 120px;
- cursor: pointer;
- object-fit: cover;
- }
- .table_header {
- .el-divider--horizontal {
- margin-top: 16px;
- }
- .table_headerBtun {
- margin-bottom: 20px;
- }
- }
- .table_nav {
- .el-collapse-item__wrap {
- border-bottom: 0;
- }
- .el-collapse-item__header {
- border-bottom: 0;
- font-size: 15px;
- font-family: PingFang SC;
- font-weight: bold;
- color: #3C8DBC;
- line-height: 36px;
- }
- // .el-form-item__content {
- // width: 55%;
- // }
- .el-collapse {
- border-top: 0;
- }
- }
- </style>
- <style scoped lang="scss">
- .app-main {
- // background-color: #eef0ff !important;
- }
- .table_total {
- background-color: #eef0ff;
- min-height: calc(100vh - 94px);
- padding: 20px;
- // 头部
- .table_header {
- background-color: #fff;
- border-radius: 6px;
- padding: 23px 23px 0px;
- margin-bottom: 20px;
- p {
- font-size: 15px;
- font-weight: bold;
- color: #3C8DBC;
- line-height: 36px;
- }
- p::before {
- content: "";
- display: block;
- width: 18px;
- height: 8px;
- background: #3C8DBC;
- border-radius: 3px;
- }
- }
- // 内容
- .table_nav {
- background-color: #fff;
- border-radius: 6px;
- padding: 23px;
- }
- }
- p {
- margin: 0;
- }
- </style>
|