Browse Source

系统接口管理

wh 4 months ago
parent
commit
6c9746aa36

+ 3 - 2
src/utils/apiUrl.js

@@ -1,6 +1,7 @@
 module.exports = {
   // 开发环境接口配置
-  // APIURl: "https://test.api.shidaiyun.net"
-  APIURl: "http://10.21.12.223:30000"
+  // APIURl: "http://localhost:30000"
+  APIURl: "https://test.api.shidaiyun.net"
+  // APIURl: "http://10.21.12.93:30000"
   // APIURl: "https://api.shidaiyun.net"
 };

+ 199 - 0
src/views/governmentCloud/systeminterface/Detail.vue

@@ -0,0 +1,199 @@
+<template>
+<el-dialog title="详情"
+           :close-on-click-modal="false" append-to-body
+           :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll
+           width="600px">
+<el-row :gutter="15" class="">
+<el-form ref="formRef" :model="dataForm" size="small" label-width="100px" label-position="right" >
+    <template v-if="!loading">
+            <el-col :span="24"   v-if="jnpf.hasFormP('name')"
+
+ >
+                <jnpf-form-tip-item  label="接口名称"  
+ prop="name"  >
+                    <JnpfInput    v-model="dataForm.name"
+ placeholder="请输入"  disabled
+ detailed  clearable  :style='{"width":"100%"}' :maskConfig = "maskConfig.name">
+                </JnpfInput>
+                </jnpf-form-tip-item>
+            </el-col>
+            <el-col :span="24"   v-if="jnpf.hasFormP('method')"
+
+ >
+                <jnpf-form-tip-item  label="请求方式"  
+ prop="method"  >
+                    <JnpfInput    v-model="dataForm.method"
+ placeholder="请输入"  disabled
+ detailed  clearable  :style='{"width":"100%"}' :maskConfig = "maskConfig.method">
+                </JnpfInput>
+                </jnpf-form-tip-item>
+            </el-col>
+            <el-col :span="24"   v-if="jnpf.hasFormP('path')"
+
+ >
+                <jnpf-form-tip-item  label="请求路径"  
+ prop="path"  >
+                    <JnpfInput    v-model="dataForm.path"
+ placeholder="请输入"  disabled
+ detailed  clearable  :style='{"width":"100%"}' :maskConfig = "maskConfig.path">
+                </JnpfInput>
+                </jnpf-form-tip-item>
+            </el-col>
+            <el-col :span="24"   v-if="jnpf.hasFormP('params')"
+
+ >
+                <jnpf-form-tip-item  label="请求参数"  
+ prop="params"  >
+                    <JnpfInput    v-model="dataForm.params"
+ placeholder="请输入"  disabled
+ detailed  clearable  :style='{"width":"100%"}' :maskConfig = "maskConfig.params">
+                </JnpfInput>
+                </jnpf-form-tip-item>
+            </el-col>
+            <el-col :span="24"   v-if="jnpf.hasFormP('body')"
+
+ >
+                <jnpf-form-tip-item  label="请求体"  
+ prop="body"  >
+                        <p>{{dataForm.body}}</p>
+                </jnpf-form-tip-item>
+            </el-col>
+            <el-col :span="24"   v-if="jnpf.hasFormP('headers')"
+
+ >
+                <jnpf-form-tip-item  label="请求头"  
+ prop="headers"  >
+                        <p>{{dataForm.headers}}</p>
+                </jnpf-form-tip-item>
+            </el-col>
+            <el-col :span="24"   v-if="jnpf.hasFormP('preOperation')"
+
+ >
+                <jnpf-form-tip-item  label="前置操作"  
+ prop="preOperation"  >
+                        <p>{{dataForm.preOperation}}</p>
+                </jnpf-form-tip-item>
+            </el-col>
+            <el-col :span="24"   v-if="jnpf.hasFormP('postOperation')"
+
+ >
+                <jnpf-form-tip-item  label="后置操作"  
+ prop="postOperation"  >
+                        <p>{{dataForm.postOperation}}</p>
+                </jnpf-form-tip-item>
+            </el-col>
+            <el-col :span="24"   v-if="jnpf.hasFormP('createTime')"
+
+ >
+                <jnpf-form-tip-item  label="创建时间"  
+ prop="createTime"  >
+                        <p>{{dataForm.createTime}}</p>
+                </jnpf-form-tip-item>
+            </el-col>
+            <el-col :span="24"   v-if="jnpf.hasFormP('createBy')"
+
+ >
+                <jnpf-form-tip-item  label="创建人"  
+ prop="createBy"  >
+                    <JnpfInput    v-model="dataForm.createBy"
+ placeholder="请输入"  disabled
+ detailed  clearable  :style='{"width":"100%"}' :maskConfig = "maskConfig.createBy">
+                </JnpfInput>
+                </jnpf-form-tip-item>
+            </el-col>
+            <el-col :span="24"   v-if="jnpf.hasFormP('sampleRequest')"
+
+ >
+                <jnpf-form-tip-item  label="请求示例"  
+ prop="sampleRequest"  >
+                        <p>{{dataForm.sampleRequest}}</p>
+                </jnpf-form-tip-item>
+            </el-col>
+    </template>
+</el-form>
+    </el-row>
+    <span slot="footer" class="dialog-footer">
+        <el-button @click="visible = false"> 取 消</el-button>
+    </span>
+    <Detail v-if="detailVisible" ref="Detail" @close="detailVisible = false" />
+    </el-dialog>
+</template>
+<script>
+    import request from '@/utils/request'
+
+    import { getConfigData } from '@/api/onlineDev/visualDev'
+    import jnpf from '@/utils/jnpf'
+    import Detail from '@/views/basic/dynamicModel/list/detail'
+    import { thousandsFormat } from "@/components/Generator/utils/index"
+    export default {
+        components: { Detail},
+        props: [],
+        data() {
+            return {
+                visible: false,
+                detailVisible: false,
+                loading: false,
+
+                //掩码配置
+                maskConfig: {
+                            name: {"prefixType":1,"useUnrealMask":false,"maskType":1,"unrealMaskLength":1,"prefixLimit":0,"suffixLimit":0,"filler":"*","prefixSpecifyChar":"","suffixType":1,"ignoreChar":"","suffixSpecifyChar":""} ,
+                            method: {"prefixType":1,"useUnrealMask":false,"maskType":1,"unrealMaskLength":1,"prefixLimit":0,"suffixLimit":0,"filler":"*","prefixSpecifyChar":"","suffixType":1,"ignoreChar":"","suffixSpecifyChar":""} ,
+                            path: {"prefixType":1,"useUnrealMask":false,"maskType":1,"unrealMaskLength":1,"prefixLimit":0,"suffixLimit":0,"filler":"*","prefixSpecifyChar":"","suffixType":1,"ignoreChar":"","suffixSpecifyChar":""} ,
+                            params: {"prefixType":1,"useUnrealMask":false,"maskType":1,"unrealMaskLength":1,"prefixLimit":0,"suffixLimit":0,"filler":"*","prefixSpecifyChar":"","suffixType":1,"ignoreChar":"","suffixSpecifyChar":""} ,
+                            createBy: {"prefixType":1,"useUnrealMask":false,"maskType":1,"unrealMaskLength":1,"prefixLimit":0,"suffixLimit":0,"filler":"*","prefixSpecifyChar":"","suffixType":1,"ignoreChar":"","suffixSpecifyChar":""} ,
+                },
+                //定位属性
+                locationScope: {
+                },
+
+            dataForm: {
+
+            },
+
+        }
+        },
+        computed: {},
+        watch: {},
+        created() {
+
+        },
+        mounted() {},
+        methods: {
+            toDetail(defaultValue, modelId) {
+                if (!defaultValue) return
+                getConfigData(modelId).then(res => {
+                    if (!res.data || !res.data.formData) return
+                    let formData = JSON.parse(res.data.formData)
+                    formData.popupType = 'general'
+                    this.detailVisible = true
+                    this.$nextTick(() => {
+                        this.$refs.Detail.init(formData, modelId, defaultValue)
+                    })
+                })
+            },
+            dataInfo(dataAll){
+                let _dataAll =dataAll
+                this.dataForm = _dataAll
+            },
+
+            init(id) {
+                this.dataForm.id = id || 0;
+                this.visible = true;
+                this.$nextTick(() => {
+                    if(this.dataForm.id){
+                        this.loading = true
+                        request({
+                            url: '/api/SystemInterface/SystemInterface/detail/'+this.dataForm.id,
+                            method: 'get'
+                        }).then(res => {
+                            this.dataInfo(res.data)
+                            this.loading = false
+                        })
+                    }
+
+                })
+            },
+        },
+    }
+
+</script>

File diff suppressed because it is too large
+ 0 - 0
src/views/governmentCloud/systeminterface/columnList.js


+ 549 - 0
src/views/governmentCloud/systeminterface/form.vue

@@ -0,0 +1,549 @@
+
+
+
+    <template>
+        <el-dialog :title="!dataForm.id ? '新建' :'编辑'"
+                   :close-on-click-modal="false" append-to-body
+                   :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll
+                   width="600px">
+        <el-row :gutter="15" class="">
+    <el-form ref="formRef" :model="dataForm" :rules="dataRule" size="small" label-width="100px" label-position="right" >
+    <template v-if="!loading">
+        <!-- 具体表单 -->
+        <el-col :span="24"  v-if="jnpf.hasFormP('name')" >
+        <jnpf-form-tip-item
+ label="接口名称"  v-if="jnpf.hasFormP('name')"              align="left"
+ prop="name" >
+        <JnpfInput   v-model="dataForm.name" @change="changeData('name',-1)" 
+ placeholder="请输入"  clearable  :style='{"width":"100%"}' :maskConfig = "maskConfig.name">
+    </JnpfInput>
+    </jnpf-form-tip-item>
+        </el-col>
+        <el-col :span="24"  v-if="jnpf.hasFormP('method')" >
+        <jnpf-form-tip-item
+ label="请求方式"  v-if="jnpf.hasFormP('method')"              align="left"
+ prop="method" >
+        <JnpfInput   v-model="dataForm.method" @change="changeData('method',-1)" 
+ placeholder="请输入"  clearable  :style='{"width":"100%"}' :maskConfig = "maskConfig.method">
+    </JnpfInput>
+    </jnpf-form-tip-item>
+        </el-col>
+        <el-col :span="24"  v-if="jnpf.hasFormP('path')" >
+        <jnpf-form-tip-item
+ label="请求路径"  v-if="jnpf.hasFormP('path')"              align="left"
+ prop="path" >
+        <JnpfInput   v-model="dataForm.path" @change="changeData('path',-1)" 
+ placeholder="请输入"  clearable  :style='{"width":"100%"}' :maskConfig = "maskConfig.path">
+    </JnpfInput>
+    </jnpf-form-tip-item>
+        </el-col>
+        <el-col :span="24"  v-if="jnpf.hasFormP('params')" >
+        <jnpf-form-tip-item
+ label="请求参数"  v-if="jnpf.hasFormP('params')"              align="left"
+ prop="params" >
+        <JnpfInput   v-model="dataForm.params" @change="changeData('params',-1)" 
+ placeholder="请输入"  clearable  :style='{"width":"100%"}' :maskConfig = "maskConfig.params">
+    </JnpfInput>
+    </jnpf-form-tip-item>
+        </el-col>
+        <el-col :span="24"  v-if="jnpf.hasFormP('body')" >
+        <jnpf-form-tip-item
+ label="请求体"  v-if="jnpf.hasFormP('body')"              align="left"
+ prop="body" >
+        <JnpfTextarea   v-model="dataForm.body" @change="changeData('body',-1)" 
+ placeholder="请输入"  :style='{"width":"100%"}' true  type="textarea"  :autosize='{"minRows":4,"maxRows":4}'  :maskConfig = "maskConfig.body">
+    </JnpfTextarea>
+    </jnpf-form-tip-item>
+        </el-col>
+        <el-col :span="24"  v-if="jnpf.hasFormP('headers')" >
+        <jnpf-form-tip-item
+ label="请求头"  v-if="jnpf.hasFormP('headers')"              align="left"
+ prop="headers" >
+        <JnpfTextarea   v-model="dataForm.headers" @change="changeData('headers',-1)" 
+ placeholder="请输入"  :style='{"width":"100%"}' true  type="textarea"  :autosize='{"minRows":4,"maxRows":4}'  :maskConfig = "maskConfig.headers">
+    </JnpfTextarea>
+    </jnpf-form-tip-item>
+        </el-col>
+        <el-col :span="24"  v-if="jnpf.hasFormP('preOperation')" >
+        <jnpf-form-tip-item
+ label="前置操作"  v-if="jnpf.hasFormP('preOperation')"              align="left"
+ prop="preOperation" >
+        <JnpfTextarea   v-model="dataForm.preOperation" @change="changeData('preOperation',-1)" 
+ placeholder="请输入"  :style='{"width":"100%"}' true  type="textarea"  :autosize='{"minRows":4,"maxRows":4}'  :maskConfig = "maskConfig.preOperation">
+    </JnpfTextarea>
+    </jnpf-form-tip-item>
+        </el-col>
+        <el-col :span="24"  v-if="jnpf.hasFormP('postOperation')" >
+        <jnpf-form-tip-item
+ label="后置操作"  v-if="jnpf.hasFormP('postOperation')"              align="left"
+ prop="postOperation" >
+        <JnpfTextarea   v-model="dataForm.postOperation" @change="changeData('postOperation',-1)" 
+ placeholder="请输入"  :style='{"width":"100%"}' true  type="textarea"  :autosize='{"minRows":4,"maxRows":4}'  :maskConfig = "maskConfig.postOperation">
+    </JnpfTextarea>
+    </jnpf-form-tip-item>
+        </el-col>
+
+        <el-col :span="24"  v-if="jnpf.hasFormP('createTime')" >
+        <jnpf-form-tip-item
+ label="创建时间"  v-if="jnpf.hasFormP('createTime')"              align="left"
+ prop="createTime" >
+        <JnpfDatePicker   v-model="dataForm.createTime" @change="changeData('createTime',-1)" 
+ :startTime="dateTime(false,1,1,'','')"  :endTime="dateTime(false,1,1,'','')"  placeholder="请选择"  clearable  :style='{"width":"100%"}' type="date"  format="yyyy-MM-dd" >
+    </JnpfDatePicker>
+    </jnpf-form-tip-item>
+        </el-col>
+        <el-col :span="24"  v-if="jnpf.hasFormP('createBy')" >
+        <jnpf-form-tip-item
+ label="创建人"  v-if="jnpf.hasFormP('createBy')"              align="left"
+ prop="createBy" >
+        <JnpfInput   v-model="dataForm.createBy" @change="changeData('createBy',-1)" 
+ placeholder="请输入"  clearable  :style='{"width":"100%"}' :maskConfig = "maskConfig.createBy">
+    </JnpfInput>
+    </jnpf-form-tip-item>
+        </el-col>
+        <el-col :span="24"  v-if="jnpf.hasFormP('sampleRequest')" >
+        <jnpf-form-tip-item
+ label="请求示例"  v-if="jnpf.hasFormP('sampleRequest')"              align="left"
+ prop="sampleRequest" >
+        <JnpfTextarea   v-model="dataForm.sampleRequest" @change="changeData('sampleRequest',-1)" 
+ placeholder="请输入"  :style='{"width":"100%"}' true  type="textarea"  :autosize='{"minRows":4,"maxRows":4}'  :maskConfig = "maskConfig.sampleRequest">
+    </JnpfTextarea>
+    </jnpf-form-tip-item>
+        </el-col>
+        <!-- 表单结束 -->
+    </template>
+    </el-form>
+    <SelectDialog v-if="selectDialogVisible" :config="currTableConf" :formData="dataForm"
+                  ref="selectDialog" @select="addForSelect" @close="closeForSelect"/>
+    </el-row>
+    <span slot="footer" class="dialog-footer">
+                    <div class="upAndDown-button" v-if="dataForm.id">
+                <el-button @click="prev" :disabled='prevDis'>
+                  {{'上一条'}}
+                </el-button>
+                <el-button @click="next" :disabled='nextDis'>
+                  {{'下一条'}}
+                </el-button>
+              </div>
+                <el-button type="primary" @click="dataFormSubmit(2)" :loading="continueBtnLoading">
+            {{!dataForm.id ?'确定并新增':'确定并继续'}}</el-button>
+              <el-button @click="visible = false"> 取 消</el-button>
+              <el-button type="primary" @click="dataFormSubmit()" :loading="btnLoading"> 确 定</el-button>
+        </span>
+    </el-dialog>
+    </template>
+
+
+<script>
+    import request from '@/utils/request'
+    import {mapGetters} from "vuex";
+    import { getDataInterfaceRes } from '@/api/systemData/dataInterface'
+    import { getDictionaryDataSelector } from '@/api/systemData/dictionary'
+    import { getDefaultCurrentValueUserId } from '@/api/permission/user'
+    import { getDefaultCurrentValueDepartmentId } from '@/api/permission/organize'
+    import { getDateDay, getLaterData, getBeforeData, getBeforeTime, getLaterTime } from '@/components/Generator/utils/index.js'
+    import { thousandsFormat } from "@/components/Generator/utils/index"
+    import SelectDialog from '@/components/SelectDialog'
+
+    export default {
+        components: { SelectDialog },
+        props: [],
+        data() {
+        return {
+            dataFormSubmitType: 0,
+            continueBtnLoading: false,
+            index: 0,
+            prevDis: false,
+            nextDis: false,
+            allList: [],
+            visible: false,
+            loading: false,
+            btnLoading: false,
+            formRef: 'formRef',
+            setting:{},
+            eventType: '',
+            userBoxVisible:false,
+            selectDialogVisible: false,
+            currTableConf:{},
+            dataValueAll:{},
+            addTableConf:{
+            },
+            //可选范围默认值
+            ableAll:{
+            },
+            tableRows:{
+        },
+            Vmodel:"",
+            currVmodel:"",
+            dataForm: {
+                                name : undefined,
+                                method : undefined,
+                                path : undefined,
+                                params : undefined,
+                                body : undefined,
+                                headers : undefined,
+                                preOperation : undefined,
+                                postOperation : undefined,
+                                createTime : undefined,
+                                createBy : undefined,
+                                sampleRequest : undefined,
+            },
+            tableRequiredData: {},
+            dataRule:
+            {
+                            name: [
+                                {
+                                    required: true,
+                                    message: '请输入',
+                                    trigger: 'blur'
+                                },
+                        ],
+                            method: [
+                                {
+                                    required: true,
+                                    message: '请输入',
+                                    trigger: 'blur'
+                                },
+                        ],
+                            path: [
+                                {
+                                    required: true,
+                                    message: '请输入',
+                                    trigger: 'blur'
+                                },
+                        ],
+                            headers: [
+                                {
+                                    required: true,
+                                    message: '请输入',
+                                    trigger: 'blur'
+                                },
+                        ],
+            },
+            childIndex:-1,
+            isEdit:false,
+            interfaceRes: {
+                        name:[] ,
+                        method:[] ,
+                        path:[] ,
+                        params:[] ,
+                        body:[] ,
+                        headers:[] ,
+                        preOperation:[] ,
+                        postOperation:[] ,
+                        createTime:[] ,
+                        createBy:[] ,
+                        sampleRequest:[] ,
+        },
+            //掩码配置
+            maskConfig: {
+                            name: {"prefixType":1,"useUnrealMask":false,"maskType":1,"unrealMaskLength":1,"prefixLimit":0,"suffixLimit":0,"filler":"*","prefixSpecifyChar":"","suffixType":1,"ignoreChar":"","suffixSpecifyChar":""} ,
+                            method: {"prefixType":1,"useUnrealMask":false,"maskType":1,"unrealMaskLength":1,"prefixLimit":0,"suffixLimit":0,"filler":"*","prefixSpecifyChar":"","suffixType":1,"ignoreChar":"","suffixSpecifyChar":""} ,
+                            path: {"prefixType":1,"useUnrealMask":false,"maskType":1,"unrealMaskLength":1,"prefixLimit":0,"suffixLimit":0,"filler":"*","prefixSpecifyChar":"","suffixType":1,"ignoreChar":"","suffixSpecifyChar":""} ,
+                            params: {"prefixType":1,"useUnrealMask":false,"maskType":1,"unrealMaskLength":1,"prefixLimit":0,"suffixLimit":0,"filler":"*","prefixSpecifyChar":"","suffixType":1,"ignoreChar":"","suffixSpecifyChar":""} ,
+                            createBy: {"prefixType":1,"useUnrealMask":false,"maskType":1,"unrealMaskLength":1,"prefixLimit":0,"suffixLimit":0,"filler":"*","prefixSpecifyChar":"","suffixType":1,"ignoreChar":"","suffixSpecifyChar":""} ,
+                },
+            //定位属性
+            locationScope: {
+                },
+            }
+        },
+        computed: {
+            ...mapGetters(['userInfo']),
+
+
+        },
+        watch: {},
+        created() {
+            this.dataAll()
+            this.initDefaultData()
+            this.dataValueAll = JSON.parse(JSON.stringify(this.dataForm))
+        },
+        mounted() {},
+        methods: {
+            prev() {
+                this.index--
+                if (this.index === 0) {
+                    this.prevDis = true
+                }
+                this.nextDis = false
+                for (let index = 0; index < this.allList.length; index++) {
+                    const element = this.allList[index];
+                    if (this.index == index) {
+                        this.getInfo(element.id)
+                    }
+                }
+            },
+            next() {
+                this.index++
+                if (this.index === this.allList.length - 1) {
+                    this.nextDis = true
+                }
+                this.prevDis = false
+                for (let index = 0; index < this.allList.length; index++) {
+                    const element = this.allList[index];
+                    if (this.index == index) {
+                        this.getInfo(element.id)
+                    }
+                }
+            },
+            getInfo(id) {
+                request({
+                    url: '/api/SystemInterface/SystemInterface/'+ id,
+                    method: 'get'
+                }).then(res => {
+                    this.dataInfo(res.data)
+                });
+            },
+            goBack() {
+                this.visible = false
+                this.$emit('refreshDataList', true)
+            },
+            changeData(model, index) {
+                this.isEdit = false
+                this.childIndex = index
+                let modelAll = model.split("-");
+                let faceMode = "";
+                for (let i = 0; i < modelAll.length; i++) {
+                    faceMode += modelAll[i];
+                }
+                for (let key in this.interfaceRes) {
+                    if (key != faceMode) {
+                        let faceReList = this.interfaceRes[key]
+                        for (let i = 0; i < faceReList.length; i++) {
+                            if (faceReList[i].relationField == model) {
+                                let options = 'get' + key + 'Options';
+                                if(this[options]){
+                                    this[options]()
+                                }
+                                this.changeData(key, index)
+                            }
+                        }
+                    }
+                }
+            },
+            changeDataFormData(type, data, model,index,defaultValue,edit) {
+                if(!edit) {
+                    if (type == 2) {
+                        for (let i = 0; i < this.dataForm[data].length; i++) {
+                            if (index == -1) {
+                                this.dataForm[data][i][model] = defaultValue
+                            } else if (index == i) {
+                                this.dataForm[data][i][model] = defaultValue
+                            }
+                        }
+                    } else {
+                        this.dataForm[data] = defaultValue
+                    }
+                }
+            },
+            dataAll(){
+            },
+            clearData(){
+                this.dataForm = JSON.parse(JSON.stringify(this.dataValueAll))
+            },
+            init(id,isDetail,allList,leftTreeActiveInfo) {
+                this.prevDis = false
+                this.nextDis = false
+                this.allList = allList || []
+                if (allList.length) {
+                    this.index = this.allList.findIndex(item => item.id === id)
+                    if (this.index == 0) {
+                        this.prevDis = true
+                    }
+                    if (this.index == this.allList.length - 1) {
+                        this.nextDis = true
+                    }
+                } else {
+                    this.prevDis = true
+                    this.nextDis = true
+                }
+                this.dataForm.id = id || 0;
+                this.visible = true;
+                this.$nextTick(() => {
+                    if(this.dataForm.id){
+                        this.loading = true
+                        request({
+                            url: '/api/SystemInterface/SystemInterface/'+this.dataForm.id,
+                            method: 'get'
+                        }).then(res => {
+                            this.dataInfo(res.data)
+                            this.loading = false
+                        });
+                    }else{
+                        this.clearData()
+                        this.initDefaultData()
+                        this.dataForm = { ...this.dataForm, ...leftTreeActiveInfo }
+                    }
+                });
+                this.$store.commit('generator/UPDATE_RELATION_DATA', {})
+            },
+            //初始化默认数据
+            initDefaultData() {
+
+            },
+            // 表单提交
+            dataFormSubmit(type) {
+                this.dataFormSubmitType = type ? type : 0
+                this.$refs['formRef'].validate((valid) => {
+                    if (valid) {
+                        this.request()
+                    }
+                })
+            },
+            request() {
+                let _data =this.dataList()
+                if (this.dataFormSubmitType == 2) {
+                    this.continueBtnLoading = true
+                } else {
+                    this.btnLoading = true
+                }
+                if (!this.dataForm.id) {
+                    request({
+                        url: '/api/SystemInterface/SystemInterface',
+                        method: 'post',
+                        data: _data
+                    }).then((res) => {
+                        this.$message({
+                            message: res.msg,
+                            type: 'success',
+                            duration: 1000,
+                            onClose: () => {
+                                if (this.dataFormSubmitType == 2) {
+                                    this.$nextTick(() => {
+                                        this.clearData()
+                                        this.initDefaultData()
+                                    })
+                                    this.continueBtnLoading = false
+                                    return
+                                }
+                                this.visible = false
+                                this.btnLoading = false
+                                this.$emit('refresh', true)
+                            }
+                        })
+                    }).catch(()=>{
+                        this.btnLoading = false
+                        this.continueBtnLoading = false
+                    })
+                }else{
+                    request({
+                        url: '/api/SystemInterface/SystemInterface/'+this.dataForm.id,
+                        method: 'PUT',
+                        data: _data
+                    }).then((res) => {
+                        this.$message({
+                            message: res.msg,
+                            type: 'success',
+                            duration: 1000,
+                            onClose: () => {
+                                if (this.dataFormSubmitType == 2) return this.continueBtnLoading = false
+                                this.visible = false
+                                this.btnLoading = false
+                                this.$emit('refresh', true)
+                            }
+                        })
+                    }).catch(()=>{
+                        this.btnLoading = false
+                        this.continueBtnLoading = false
+                    })
+                }
+            },
+            openSelectDialog(key,value) {
+                this.currTableConf=this.addTableConf[key + value]
+                this.currVmodel=key
+                this.selectDialogVisible = true
+                this.$nextTick(() => {
+                    this.$refs.selectDialog.init()
+                })
+            },
+            addForSelect(data) {
+                this.closeForSelect()
+                for (let i = 0; i < data.length; i++) {
+                    let t = data[i]
+                    if(this['get'+this.currVmodel]){
+                        this['get'+this.currVmodel](t,true)
+                    }
+                }
+            },
+            closeForSelect() {
+                this.selectDialogVisible = false
+            },
+            dateTime(timeRule, timeType, timeTarget, timeValueData, dataValue) {
+                let timeDataValue = null;
+                let timeValue = Number(timeValueData)
+                if (timeRule) {
+                    if (timeType == 1) {
+                        timeDataValue = timeValue
+                    } else if (timeType == 2) {
+                        timeDataValue = dataValue
+                    } else if (timeType == 3) {
+                        timeDataValue = new Date().getTime()
+                    } else if (timeType == 4) {
+                        let previousDate = '';
+                        if (timeTarget == 1 || timeTarget == 2) {
+                            previousDate = getDateDay(timeTarget, timeType, timeValue)
+                            timeDataValue = new Date(previousDate).getTime()
+                        } else if (timeTarget == 3) {
+                            previousDate = getBeforeData(timeValue)
+                            timeDataValue = new Date(previousDate).getTime()
+                        } else {
+                            timeDataValue = getBeforeTime(timeTarget, timeValue).getTime()
+                        }
+                    } else if (timeType == 5) {
+                        let previousDate = '';
+                        if (timeTarget == 1 || timeTarget == 2) {
+                            previousDate = getDateDay(timeTarget, timeType, timeValue)
+                            timeDataValue = new Date(previousDate).getTime()
+                        } else if (timeTarget == 3) {
+                            previousDate = getLaterData(timeValue)
+                            timeDataValue = new Date(previousDate).getTime()
+                        } else {
+                            timeDataValue = getLaterTime(timeTarget, timeValue).getTime()
+                        }
+                    }
+                }
+                return timeDataValue;
+            },
+            time(timeRule, timeType, timeTarget, timeValue, formatType, dataValue) {
+                let format = formatType == 'HH:mm' ? 'HH:mm:00' : formatType
+                let timeDataValue = null
+                if (timeRule) {
+                    if (timeType == 1) {
+                        timeDataValue = timeValue || '00:00:00'
+                        if (timeDataValue.split(':').length == 3) {
+                            timeDataValue = timeDataValue
+                        } else {
+                            timeDataValue = timeDataValue + ':00'
+                        }
+                    } else if (timeType == 2) {
+                        timeDataValue = dataValue
+                    } else if (timeType == 3) {
+                        timeDataValue = this.jnpf.toDate(new Date(), format)
+                    } else if (timeType == 4) {
+                        let previousDate = '';
+                        previousDate = getBeforeTime(timeTarget, timeValue)
+                        timeDataValue = this.jnpf.toDate(previousDate, format)
+                    } else if (timeType == 5) {
+                        let previousDate = '';
+                        previousDate = getLaterTime(timeTarget, timeValue)
+                        timeDataValue = this.jnpf.toDate(previousDate, format)
+                    }
+                }
+                return timeDataValue;
+            },
+            dataList(){
+                var _data = this.dataForm;
+                return _data;
+            },
+            dataInfo(dataAll){
+                let _dataAll =dataAll
+                this.dataForm = _dataAll
+                this.isEdit = true
+                this.dataAll()
+                this.childIndex=-1
+            },
+        },
+    }
+
+</script>

+ 603 - 0
src/views/governmentCloud/systeminterface/index.vue

@@ -0,0 +1,603 @@
+
+
+
+
+
+
+
+<template>
+    <div class="JNPF-common-layout">
+        <div class="JNPF-common-layout-center">
+            <el-row class="JNPF-common-search-box" :gutter="16">
+                <el-form @submit.native.prevent>
+                            <el-col :span="6">
+                                <el-form-item label="接口名称">
+                                        <el-input v-model="query.name" placeholder="请输入" clearable>  </el-input>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="6">
+                                <el-form-item label="请求路径">
+                                        <el-input v-model="query.path" placeholder="请输入" clearable>  </el-input>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="6">
+                                <el-form-item label="创建人">
+                                        <el-input v-model="query.createBy" placeholder="请输入" clearable>  </el-input>
+                                </el-form-item>
+                            </el-col>
+                    <el-col :span="6">
+                        <el-form-item>
+                            <el-button type="primary" icon="el-icon-search" @click="search()">查询</el-button>
+                            <el-button icon="el-icon-refresh-right" @click="reset()">重置</el-button>
+                        </el-form-item>
+                    </el-col>
+                </el-form>
+            </el-row>
+            <div class="JNPF-common-layout-main JNPF-flex-main">
+                <div class="JNPF-common-head">
+                    <div>
+                                    <el-button type="primary" icon="icon-ym icon-ym-btn-add"  v-has="'btn_add'"  @click="addOrUpdateHandle()">新增
+                                    </el-button>
+                    </div>
+                    <div class="JNPF-common-head-right">
+                            <el-tooltip content="高级查询" placement="top" v-if="true">
+                                <el-link icon="icon-ym icon-ym-filter JNPF-common-head-icon" :underline="false"
+                                         @click="openSuperQuery()" />
+                            </el-tooltip>
+                            <el-tooltip effect="dark" :content="$t('common.refresh')" placement="top">
+                                <el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
+                                         @click="initData()" />
+                            </el-tooltip>
+                    </div>
+                </div>
+                <JNPF-table v-loading="listLoading" :data="list" @sort-change='handleTableSort' :header-cell-class-name="handleHeaderClass"
+                            :has-c="hasBatchBtn" @selection-change="handleSelectionChange"
+ :span-method="arraySpanMethod"  
+
+>
+                                                <el-table-column
+                                                            prop="name"
+ label="接口名称"  align="left"
+  v-if="jnpf.hasP('name')"  show-overflow-tooltip >
+    <template slot-scope="scope">
+        <JnpfInput v-model="scope.row.name" detailed  showOverflow   />
+    </template>
+                                                </el-table-column>
+                                                <el-table-column
+                                                            prop="method"
+ label="请求方式"  align="left"
+  v-if="jnpf.hasP('method')"  show-overflow-tooltip >
+    <template slot-scope="scope">
+        <JnpfInput v-model="scope.row.method" detailed  showOverflow   />
+    </template>
+                                                </el-table-column>
+                                                <el-table-column
+                                                            prop="path"
+ label="请求路径"  align="left"
+  v-if="jnpf.hasP('path')"  show-overflow-tooltip >
+    <template slot-scope="scope">
+        <JnpfInput v-model="scope.row.path" detailed  showOverflow   />
+    </template>
+                                                </el-table-column>
+                                                <el-table-column
+                                                            prop="params"
+ label="请求参数"  align="left"
+  v-if="jnpf.hasP('params')"  show-overflow-tooltip >
+    <template slot-scope="scope">
+        <JnpfInput v-model="scope.row.params" detailed  showOverflow   />
+    </template>
+                                                </el-table-column>
+                                                <el-table-column
+                                                            prop="body"
+ label="请求体"  align="left"
+  v-if="jnpf.hasP('body')"  show-overflow-tooltip >
+                                                </el-table-column>
+                                                <el-table-column
+                                                            prop="headers"
+ label="请求头"  align="left"
+  v-if="jnpf.hasP('headers')"  show-overflow-tooltip >
+                                                </el-table-column>
+                                                <el-table-column
+                                                            prop="preOperation"
+ label="前置操作"  align="left"
+  v-if="jnpf.hasP('preOperation')"  show-overflow-tooltip >
+                                                </el-table-column>
+                                                <el-table-column
+                                                            prop="postOperation"
+ label="后置操作"  align="left"
+  v-if="jnpf.hasP('postOperation')"  show-overflow-tooltip >
+                                                </el-table-column>
+                                                <el-table-column
+                                                            prop="createTime"
+ label="创建时间"  align="left"
+  v-if="jnpf.hasP('createTime')"  show-overflow-tooltip >
+                                                </el-table-column>
+                                                <el-table-column
+                                                            prop="createBy"
+ label="创建人"  align="left"
+  v-if="jnpf.hasP('createBy')"  show-overflow-tooltip >
+    <template slot-scope="scope">
+        <JnpfInput v-model="scope.row.createBy" detailed  showOverflow   />
+    </template>
+                                                </el-table-column>
+                                                <el-table-column
+                                                            prop="sampleRequest"
+ label="请求示例"  align="left"
+  v-if="jnpf.hasP('sampleRequest')"  show-overflow-tooltip >
+                                                </el-table-column>
+                        <el-table-column label="操作"
+ fixed="right" width="150" >
+                            <template slot-scope="scope"  >
+                                            <el-button type="text"
+                                                       @click="addOrUpdateHandle(scope.row)"  v-has="'btn_edit'" >编辑
+                                            </el-button>
+                                        <el-button type="text" class="JNPF-table-delBtn"  v-has="'btn_remove'"  @click="handleDel(scope.row.id)">删除
+                                        </el-button>
+                                        <el-button type="text"   v-has="'btn_detail'" 
+                                                   @click="goDetail(scope.row.id)">详情
+                                        </el-button>
+                            </template>
+                        </el-table-column>
+                </JNPF-table>
+                        <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/>
+             </div>
+        </div>
+        <JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
+        <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
+
+
+
+
+        <ImportBox v-if="uploadBoxVisible" ref="UploadBox" @refresh="initData" />
+        <Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
+        <ToFormDetail v-if="toFormDetailVisible" ref="toFormDetail" @close="toFormDetailVisible = false" />
+            <SuperQuery v-if="superQueryVisible" ref="SuperQuery" :columnOptions="superQueryJson"
+                        @superQuery="superQuery" />
+    </div>
+</template>
+
+<script>
+import request from '@/utils/request'
+import {mapGetters} from "vuex";
+import {getDictionaryDataSelector} from '@/api/systemData/dictionary'
+import JNPFForm from './form'
+import Detail from './Detail'
+import ExportBox from '@/components/ExportBox'
+import ToFormDetail from '@/views/basic/dynamicModel/list/detail'
+import {getDataInterfaceRes} from '@/api/systemData/dataInterface'
+import { getConfigData } from '@/api/onlineDev/visualDev'
+import { getDefaultCurrentValueUserIdAsync } from '@/api/permission/user'
+import { getDefaultCurrentValueDepartmentIdAsync } from '@/api/permission/organize'
+import columnList from './columnList'
+import { thousandsFormat } from "@/components/Generator/utils/index"
+import SuperQuery from '@/components/SuperQuery'
+import superQueryJson from './superQueryJson'
+import { noGroupList } from '@/components/Generator/generator/comConfig'
+
+    export default {
+        components: {
+                JNPFForm,
+                Detail,
+ ExportBox,ToFormDetail , SuperQuery
+        },
+        data() {
+            return {
+
+                keyword:'',
+                expandsTree: true,
+                refreshTree: true,
+                toFormDetailVisible:false,
+                hasBatchBtn:false,
+                                expandObj:{},
+                columnOptions: [],
+                mergeList: [],
+                exportList:[],
+                    columnList,
+
+                    superQueryVisible: false,
+                    superQueryJson,
+                uploadBoxVisible: false,
+                detailVisible: false,
+                query: {
+                        name:undefined,
+                        path:undefined,
+                        createBy:undefined,
+            },
+                defListQuery: {
+                    sort: 'desc',
+                    sidx: '',
+                },
+                //排序默认值
+                defaultSortConfig:  [],
+            treeProps: {
+                    children: 'children',
+                    label: 'fullName',
+                    value: 'id',
+                    isLeaf: 'isLeaf'
+            },
+            list: [],
+            listLoading: true,
+            multipleSelection: [],
+                    total: 0,
+            queryData: {},
+            listQuery: {
+                    superQueryJson: '',
+                    currentPage: 1,
+                    pageSize: 20,
+                    sort: "",
+                    sidx: "",
+            },
+            //多列排序
+            ordersList: [],
+            formVisible: false,
+            flowVisible: false,
+            flowListVisible: false,
+            flowList: [],
+            exportBoxVisible: false,
+                                                                                                                                                interfaceRes: {
+                },
+            //掩码配置
+            maskConfig: {
+                        name: {"prefixType":1,"useUnrealMask":false,"maskType":1,"unrealMaskLength":1,"prefixLimit":0,"suffixLimit":0,"filler":"*","prefixSpecifyChar":"","suffixType":1,"ignoreChar":"","suffixSpecifyChar":""} ,
+                        method: {"prefixType":1,"useUnrealMask":false,"maskType":1,"unrealMaskLength":1,"prefixLimit":0,"suffixLimit":0,"filler":"*","prefixSpecifyChar":"","suffixType":1,"ignoreChar":"","suffixSpecifyChar":""} ,
+                        path: {"prefixType":1,"useUnrealMask":false,"maskType":1,"unrealMaskLength":1,"prefixLimit":0,"suffixLimit":0,"filler":"*","prefixSpecifyChar":"","suffixType":1,"ignoreChar":"","suffixSpecifyChar":""} ,
+                        params: {"prefixType":1,"useUnrealMask":false,"maskType":1,"unrealMaskLength":1,"prefixLimit":0,"suffixLimit":0,"filler":"*","prefixSpecifyChar":"","suffixType":1,"ignoreChar":"","suffixSpecifyChar":""} ,
+                        createBy: {"prefixType":1,"useUnrealMask":false,"maskType":1,"unrealMaskLength":1,"prefixLimit":0,"suffixLimit":0,"filler":"*","prefixSpecifyChar":"","suffixType":1,"ignoreChar":"","suffixSpecifyChar":""} ,
+            },
+            }
+        },
+        computed: {
+            ...mapGetters(['userInfo']),
+            menuId() {
+                return this.$route.meta.modelId || ''
+            }
+        },
+        created() {
+                        this.getColumnList(),
+                this.initSearchDataAndListData()
+            this.queryData = JSON.parse(JSON.stringify(this.query))
+            this.getHasBatchBtn();
+            //排序默认值
+            this.setDefaultQuery(this.defaultSortConfig);
+        },
+        methods: {
+            getHasBatchBtn(){
+                let btnsList =[]
+                this.hasBatchBtn = btnsList.some(o => ['batchRemove', 'batchPrint', 'download'].includes(o))
+                    const permissionList = this.$store.getters.permissionList
+                    const modelId = this.$route.meta.modelId
+                    const list = permissionList.filter(o => o.modelId === modelId)
+                    const btnsListPermission = list[0] && list[0].button ? list[0].button : []
+                    this.hasBatchBtn = btnsListPermission.some(o => ['btn_batchRemove', 'btn_batchPrint', 'btn_download'].includes(o.enCode))
+            },
+
+            treeRefresh(){
+                this.keyword=''
+                this.treeActiveId = ''
+                this.leftTreeActiveInfo ={}
+                this.$refs.treeBox.setCurrentKey(null)
+                this.getTreeView()
+            },
+
+            toDetail(defaultValue, modelId) {
+                if (!defaultValue) return
+                getConfigData(modelId).then(res => {
+                    if (!res.data || !res.data.formData) return
+                    let formData = JSON.parse(res.data.formData)
+                    formData.popupType = 'general'
+                    this.toFormDetailVisible = true
+                    this.$nextTick(() => {
+                        this.$refs.toFormDetail.init(formData, modelId, defaultValue)
+                    })
+                })
+            },
+            toggleTreeExpand(expands) {
+                this.refreshTree = false
+                this.expandsTree = expands
+                this.$nextTick(() => {
+                    this.refreshTree = true
+                    this.$nextTick(() => {
+                        this.$refs.treeBox.setCurrentKey(null)
+                    })
+                })
+            },
+            filterNode(value, data) {
+                if (!value) return true;
+                return data[this.treeProps.label].indexOf(value) !== -1;
+            },
+            loadNode(node, resolve) {
+                const nodeData = node.data
+                const config ={
+                    treeInterfaceId:"",
+                    treeTemplateJson:[]
+                }
+                if (config.treeInterfaceId) {
+                    //这里是为了拿到参数中关联的字段的值,后端自行拿
+                    if (config.treeTemplateJson && config.treeTemplateJson.length) {
+                        for (let i = 0; i < config.treeTemplateJson.length; i++) {
+                            const element = config.treeTemplateJson[i];
+                            element.defaultValue = nodeData[element.relationField] || ''
+                        }
+                    }
+                    //参数
+                    let query = {
+                        paramList: config.treeTemplateJson || [],
+                    }
+                    //接口
+                    getDataInterfaceRes(config.treeInterfaceId, query).then(res => {
+                        let data = res.data
+                        if (Array.isArray(data)) {
+                            resolve(data);
+                        } else {
+                            resolve([]);
+                        }
+                    })
+                }
+            },
+                        getColumnList() {
+                    // 开启权限
+                    let columnPermissionList = []
+                    const permissionList = this.$store.getters.permissionList
+                            const modelId = this.$route.meta.modelId
+                        const list = permissionList.filter(o => o.modelId === modelId)
+                    const columnList = list[0] && list[0].column ? list[0].column : []
+                    for (let i = 0; i < this.columnList.length; i++) {
+                        inner: for (let j = 0; j < columnList.length; j++) {
+                            if (this.columnList[i].prop === columnList[j].enCode) {
+                                columnPermissionList.push(this.columnList[i])
+                                break inner
+                            }
+                        }
+                    }
+                    this.columnOptions = this.transformColumnList(columnPermissionList)
+            },
+            transformColumnList(columnList) {
+                let list = []
+                for (let i = 0; i < columnList.length; i++) {
+                    const e = columnList[i];
+                    if (!e.prop.includes('-')) {
+                        list.push(e)
+                    } else {
+                        let prop = e.prop.split('-')[0]
+                        let label = e.label.split('-')[0]
+                        let vModel = e.prop.split('-')[1]
+                        let newItem = {
+                            align: "center",
+                            jnpfKey: "table",
+                            prop,
+                            label,
+                            children: []
+                        }
+                        e.vModel = vModel
+                        if (!this.expandObj.hasOwnProperty(`${prop}Expand`)) this.$set(this.expandObj, `${prop}Expand`, false)
+                        if (!list.some(o => o.prop === prop)) list.push(newItem)
+                        for (let i = 0; i < list.length; i++) {
+                            if (list[i].prop === prop) {
+                                list[i].children.push(e)
+                                break
+                            }
+                        }
+                    }
+                }
+                this.getMergeList(list)
+                this.getExportList(list)
+                return list
+            },
+            arraySpanMethod({ column }) {
+                for (let i = 0; i < this.mergeList.length; i++) {
+                    if (column.property == this.mergeList[i].prop) {
+                        return [this.mergeList[i].rowspan, this.mergeList[i].colspan]
+                    }
+                }
+            },
+            getMergeList(list) {
+                let newList = JSON.parse(JSON.stringify(list))
+                newList.forEach(item => {
+                    if (item.children && item.children.length) {
+                        let child = {
+                            prop: item.prop + '-child-first'
+                        }
+                        item.children.unshift(child)
+                    }
+                })
+                newList.forEach(item => {
+                    if (item.children && item.children.length ) {
+                        item.children.forEach((child, index) => {
+                            if (index == 0) {
+                                this.mergeList.push({
+                                    prop: child.prop,
+                                    rowspan: 1,
+                                    colspan: item.children.length
+                                })
+                            } else {
+                                this.mergeList.push({
+                                    prop: child.prop,
+                                    rowspan: 0,
+                                    colspan: 0
+                                })
+                            }
+                        })
+                    } else {
+                        this.mergeList.push({
+                            prop: item.prop,
+                            rowspan: 1,
+                            colspan: 1
+                        })
+                    }
+                })
+            },
+            getExportList(list) {
+                let exportList = []
+                for (let i = 0; i < list.length; i++) {
+                    if (list[i].jnpfKey === 'table') {
+                        for (let j = 0; j < list[i].children.length; j++) {
+                            exportList.push(list[i].children[j])
+                        }
+                    } else {
+                        exportList.push(list[i])
+                    }
+                }
+                this.exportList = exportList.filter(o => !noGroupList.includes(o.__config__.jnpfKey))
+            },
+            goDetail(id){
+                this.detailVisible = true
+                this.$nextTick(() => {
+                    this.$refs.Detail.init(id)
+                })
+            },
+            sortChange({column, prop, order}) {
+                this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
+                this.listQuery.sidx = !order ? '' : prop
+                this.initData()
+            },
+            async initSearchDataAndListData() {
+                await this.initSearchData()
+                this.initData()
+            },
+            //初始化查询的默认数据
+            async initSearchData() {
+            },
+            initData() {
+                // this.queryData = JSON.parse(JSON.stringify(this.query))导致重置失效
+                this.listLoading = true;
+                let _query = {
+                    ...this.listQuery,
+                    ...this.query,
+                    ...this.defListQuery,
+                        keyword: this.keyword,
+                        dataType: 0,
+                    menuId:this.menuId,
+                    moduleId:'581416438179304773',
+                    type:1,
+                };
+                request({
+                    url: `/api/SystemInterface/SystemInterface/getList`,
+                    method: 'post',
+                    data: _query
+                }).then(res => {
+                    var _list =[];
+                    for(let i=0;i<res.data.list.length;i++){
+                        let _data = res.data.list[i];
+                        _list.push(_data)
+                    }
+                                            this.list = _list.map(o => ({
+                            ...o,
+                            ...this.expandObj,
+                        }))
+                            this.total = res.data.pagination.total
+                    this.listLoading = false
+                })
+            },
+            handleDel(id) {
+                this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+                    type: 'warning'
+                }).then(() => {
+                    request({
+                        url: `/api/SystemInterface/SystemInterface/${id}`,
+                        method: 'DELETE'
+                    }).then(res => {
+                        this.$message({
+                            type: 'success',
+                            message: res.msg,
+                            onClose: () => {
+                                this.initData()
+                            }
+                        });
+                    })
+                }).catch(() => {
+                });
+            },
+            handelUpload(){
+                this.uploadBoxVisible = true
+                this.$nextTick(() => {
+                    this.$refs.UploadBox.init("","SystemInterface/SystemInterface",0,this.flowList)
+                })
+            },
+                openSuperQuery() {
+                    this.superQueryVisible = true
+                    this.$nextTick(() => {
+                        this.$refs.SuperQuery.init()
+                    })
+                },
+                superQuery(queryJson) {
+                    this.listQuery.superQueryJson = queryJson
+                    this.listQuery.currentPage = 1
+                    this.initData()
+                },
+            addOrUpdateHandle(row, isDetail) {
+                let id = row?row.id:""
+                this.formVisible = true
+                if(!this.treeActiveId) {
+                    this.leftTreeActiveInfo={}
+                }
+                this.$nextTick(() => {
+                    this.$refs.JNPFForm.init(id, isDetail,this.list,this.leftTreeActiveInfo)
+                })
+            },
+            exportData() {
+                this.exportBoxVisible = true
+                this.$nextTick(() => {
+                    this.$refs.ExportBox.init(this.exportList, this.multipleSelection)
+                })
+            },
+            download(data) {
+                let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId}
+                request({
+                    url: `/api/SystemInterface/SystemInterface/Actions/Export`,
+                    method: 'post',
+                    data: query
+                }).then(res => {
+                    if (!res.data.url) return
+                    this.jnpf.downloadFile(res.data.url)
+                    this.$refs.ExportBox.visible = false
+                    this.exportBoxVisible = false
+                })
+            },
+            search() {
+                    this.listQuery.currentPage=1
+                        this.listQuery.pageSize=20
+                this.initData()
+            },
+            refresh(isrRefresh) {
+                this.formVisible = false
+                if (isrRefresh) this.reset()
+            },
+            reset() {
+                this.query = JSON.parse(JSON.stringify(this.queryData))
+                this.search()
+            },
+            colseFlow(isrRefresh) {
+                this.flowVisible = false
+                if (isrRefresh) this.reset()
+            },
+
+            //以下排序相关方法
+            setDefaultQuery(defaultSortList) {
+                const defaultSortConfig = (defaultSortList || []).map(o =>
+                        (o.sort === 'desc' ? '-' : '') + o.field);
+                this.defListQuery.sidx = defaultSortConfig.join(',')
+            },
+            handleHeaderClass({ column }) {
+                column.order = column.multiOrder
+            },
+            handleTableSort({ column }) {
+                if (column.sortable !== 'custom') return
+                column.multiOrder = column.multiOrder === 'descending' ? 'ascending' : column.multiOrder ? '' : 'descending';
+                this.handleOrderChange(column.property, column.multiOrder)
+            },
+            handleOrderChange(orderColumn, orderState) {
+                let index = this.ordersList.findIndex(e => e.field === orderColumn);
+                let sort = orderState === 'ascending' ? 'asc' : orderState === 'descending' ? 'desc' : '';
+                if (index > -1) {
+                    this.ordersList[index].sort = orderState;
+                } else {
+                    this.ordersList.push({ field: orderColumn, sort });
+                }
+                this.ordersList = this.ordersList.filter(e => e.sort);
+                this.ordersList.length ? this.setDefaultQuery(this.ordersList) : this.setDefaultQuery(this.defaultSortConfig)
+                this.initData()
+            },
+            //以上排序相关方法
+        }
+    }
+</script>

File diff suppressed because it is too large
+ 0 - 0
src/views/governmentCloud/systeminterface/superQueryJson.js


Some files were not shown because too many files changed in this diff