浏览代码

merge 账户配置

jiayufei 4 年之前
父节点
当前提交
2a0f8813fa

+ 8 - 0
src/api/actor.js

@@ -170,6 +170,14 @@ export function fileEdit(parameter) {
     })
 }
 
+export function fileEditUpdate(parameter) {
+    return axios({
+        url: "/ctop/materialInfo/bytedance/edit",
+        method: 'put',
+        data: parameter
+    })
+}
+
 
 export function fileEditAll(parameter) {
     return axios({

+ 2 - 2
src/views/modules/Statistics/components/Treeselect.vue

@@ -201,9 +201,9 @@ export default {
                       return {
                         id: i.accountId,
                         label:
-                          (i.userName.length == 2
+                          (i.userName && i.userName.length == 2
                             ? i.userName + '\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0'
-                            : i.userName.length == 3
+                            : i.userName && i.userName.length == 3
                             ? i.userName + '\xa0\xa0\xa0\xa0'
                             : i.userName) +
                           '\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0' +

+ 43 - 5
src/views/modules/Statistics/components/selectPagination.vue

@@ -103,10 +103,36 @@ export default {
         return ''
       },
     },
+    type: {
+      type: String,
+      default() {
+        return ''
+      },
+    }
   },
 
   data() {
     return {
+      taobaoSpecialOfferList: {
+        advertiserId: "fd41614705a047dd65ab0e34e9150cfe",
+        advertiserName: " 淘宝(中国)软件有限公司",
+        createTime: "2021-03-03 10:15:30",
+        designResponsibleName: "辛巴特",
+        id: 3660879,
+        maxBid: 30000,
+        mediaId: "1",
+        productId: 1410280,
+        productName: "头条-淘宝特价版",
+        projectId: 1530887,
+        projectName: "头条-淘宝特价版",
+        responsibleName: "董琪",
+        roleCode: "operator",
+        saleId: null,
+        saleName: null,
+        updateTime: "2021-03-03 21:23:04",
+        userId: "a0d58df3392c4583b55ce3b041792aa7",
+        userName: "王晓娟"
+      },
       loading: false,
       busy: false,
       labelCol: {
@@ -182,13 +208,19 @@ export default {
         projectName: this.keyValue,
       }).then((res) => {
         if (res.code == 0) {
-          this.data = res.result.records.map((item, index) => {
+          let defaultList = res.result.records.map((item, index) => {
             return {
               ...item,
               projectId: item.projectId + '',
               key: index,
-            }
+            };
           })
+          if (this.type === 'taobao') {
+            this.data = defaultList.filter(item => item.productId === 1410280);
+          }
+          else {
+            this.data = defaultList;
+          }
           // this.dataElse = res.result.records.map((item, index) => {
           //   return {
           //     ...item,
@@ -242,15 +274,21 @@ export default {
       }).then((res) => {
         if (res.code == 0) {
           this.busy = true
-          this.data = data.concat(
-            res.result.records.map((item, index) => {
+          let defaultList = res.result.records.map((item, index) => {
               return {
                 ...item,
                 projectId: item.projectId + '',
               }
             })
+          this.data = data.concat(
+            
           )
-
+          if (this.type === 'taobao') {
+            this.data = defaultList.filter(item => item.productId === 1410280);
+          }
+          else {
+            this.data = data.concat(defaultList);
+          }
           // this.data = res.result.records.map((item, index) => {
           //   return {
           //     ...item,

+ 1 - 0
src/views/modules/account-config/account-config-server.js

@@ -0,0 +1 @@
+export const urlAcount = 'http://139.186.165.84:8080';

+ 31 - 0
src/views/modules/account-config/account-config.less

@@ -0,0 +1,31 @@
+.account-config-content {
+    background: #fff;
+    height: calc(100vh - 137px);
+    padding: 20px;
+    overflow-y: auto;
+    .control-con-header {
+        margin-bottom: 20px;
+        position: relative;
+        .acount-search-class {
+            width: 450px;
+        }
+        .reset-class {
+            margin-right: 10px !important;
+        }
+        .upload-person {
+            position: absolute;
+            right: 10px;
+            top: 0;
+        }
+    }
+    .pagin-table-class {
+        display: flex;
+        justify-content: flex-end;
+        margin-top: 20px;
+    }
+}
+.handle-p {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+}

+ 334 - 0
src/views/modules/account-config/account-config.vue

@@ -0,0 +1,334 @@
+<template>
+    <div class="account-config-content">
+        <div class="control-con-header">
+            <a-form
+                class="grid-form"
+                layout="inline"
+                :form="form"
+                hide-required-mark
+                @submit="handleQueryList"
+            >
+                <a-row class="grid-form-options">
+                    <a-form-item
+                        class="grid-form-item"
+                        label="账户"
+                        :colon="false"
+                    >
+                        <acount-search class="acount-search-class" :appId.sync="acountId" :multiple="false" request="1,3"></acount-search>
+                    </a-form-item>
+                    <a-form-item class="form-handle-btn">
+                        <a-button type="default" class="reset-class" @click="handleResetList">重置</a-button>
+                        <a-button type="primary" html-type="submit">查询</a-button>
+                    </a-form-item>
+                </a-row>
+            </a-form>
+            <a-button type="primary" class="upload-person" @click="handleAddAccountConfig">新建账户配置</a-button>
+        </div>
+        <div class="control-con-table">
+            <a-table
+                ref="table"
+                size="middle"
+                bordered
+                :columns="columns"
+                :dataSource="dataSource"
+                :pagination="false"
+            >
+                <span slot="customTitle">
+                    花费(元)
+                    <a-tooltip placement="top">
+                        <template slot="title">
+                            <span>当日花费</span>
+                        </template>
+                        <a-icon type="smile-o"/>
+                    </a-tooltip>
+                </span>
+                <span slot="acountRelax" slot-scope="text, record">
+                    <a-switch :checked="text === 0" @change="handleSwitchChang($event, record)"/>
+                </span>
+                <span slot="action" slot-scope="text, record">
+                    <a @click="handleEdit(record)">编辑</a>
+                    <a-divider type="vertical"/>
+                    <a @click="handleListDelete(record)">删除</a>
+                    <a-divider type="vertical"/>
+                    <a-popover v-model="record.visible" trigger="click">
+                        <template slot="content">
+                            <div><a-input v-model="modContent" placeholder="请输入" style="width: 140px;"/></div>
+                            <div style="margin-top: 10px;">
+                                <a-button
+                                    size="small"
+                                    type="primary"
+                                    style="margin-left: 15px;margin-right: 15px;"
+                                    @click="handlePopoverSure(record, 'mod')"
+                                >
+                                    确定
+                                </a-button>
+                                <a-button size="small" @click="handleModPopover(record)">取消</a-button>
+                            </div>
+                        </template>
+                        <a>修改出价</a>
+                    </a-popover>
+                    <a-divider type="vertical"/>
+                    <a-popover v-model="record.show" trigger="click">
+                        <template slot="content">
+                            <div><a-input v-model="budgetContent" placeholder="请输入" style="width: 140px;"/></div>
+                            <div style="margin-top: 10px;">
+                                <a-button
+                                    size="small"
+                                    type="primary"
+                                    style="margin-left: 15px;margin-right: 15px;"
+                                    @click="handlePopoverSure(record, 'budget')"
+                                >
+                                    确定
+                                </a-button>
+                                <a-button size="small" @click="handleBudgetPopover(record)">取消</a-button>
+                            </div>
+                        </template>
+                        <a>修改预算</a>
+                    </a-popover>
+                </span>
+            </a-table>
+            <a-pagination
+                class="pagin-table-class"
+                :total="totalAll"
+                :show-total="total => `共 ${totalAll} 条`"
+                size="small"
+                show-size-changer
+                show-quick-jumper
+                @change="onShowSizeChange"
+                @showSizeChange="onShowSizeChange"
+            />
+        </div>
+    </div>
+</template>
+<script>
+import AcountSearch from '@/views/modules/Statistics/components/Treeselect.vue';
+
+import {getAction, putAction, deleteAction} from '@/api/manage';
+import {mapGetters} from 'vuex';
+import {urlAcount} from './account-config-server.js';
+
+export default {
+    name: 'account-config',
+    components: {
+        AcountSearch
+    },
+    data() {
+        return {
+            modContent: '',
+            budgetContent: '',
+            acountId: undefined, // 搜索的账户ID
+            totalAll: 0,
+            tablePag: {
+                page: 1,
+                size: 10
+            },
+            dataSource: [],
+            columns: [
+                {
+                    title: '开关',
+                    align: 'center',
+                    dataIndex: 'status',
+                    scopedSlots: {customRender: 'acountRelax'}
+                },
+                {
+                    title: '广告账户名称',
+                    align: 'center',
+                    dataIndex: 'accountId_dictText'
+                },
+                {
+                    title: '账户ID',
+                    align: 'center',
+                    dataIndex: 'accountId'
+                },
+                {
+                    title: '创建时间',
+                    dataIndex: 'createTime',
+                    align: 'center'
+                },
+                {
+                    title: '账户余额',
+                    dataIndex: 'validBalance',
+                    align: 'center'
+                },
+                {
+                    title: '账户日预算量(元)',
+                    dataIndex: 'adBudget',
+                    align: 'center'
+                },
+                {
+                    title: '出价(元)',
+                    dataIndex: 'adCpaBid',
+                    align: 'center'
+                },
+                {
+                    align: 'center',
+                    dataIndex: 'cost',
+                    slots: {title: 'customTitle'}
+                },
+                {
+                    title: '操作',
+                    dataIndex: 'action',
+                    align: 'center',
+                    scopedSlots: {customRender: 'action'}
+                }
+            ]
+        };
+    },
+    created() {
+        this.form = this.$form.createForm(this);
+    },
+    mounted() {
+        this.handleInitTable();
+    },
+    methods: {
+        ...mapGetters(['nickname', 'avatar', 'userInfo']),
+        handlePopoverSure(record, type) {
+            const defaultList = {
+                accountId: record.accountId,
+                bid: this.modContent,
+                budget: this.budgetContent,
+                adId: record.adId ? record.adId : '',
+                id: record.id
+            };
+            let paramsData = new FormData();
+            if (type === 'mod') {
+                record.visible = false;
+                this.modContent = '';
+                paramsData.append('accountId', defaultList.accountId);
+                paramsData.append('adId', defaultList.adId);
+                paramsData.append('type', 1);
+                paramsData.append('bId', defaultList.bid);
+                paramsData.append('id', defaultList.id);
+            }
+            else if (type === 'budget') {
+                record.show = false;
+                this.budgetContent = '';
+                paramsData.append('accountId', defaultList.accountId);
+                paramsData.append('adId', defaultList.adId);
+                paramsData.append('type', 2);
+                paramsData.append('budget', defaultList.budget);
+                paramsData.append('id', defaultList.id);
+            }
+            this.handlePopoverChange(paramsData);
+        },
+        handlePopoverChange(data) {
+            putAction(urlAcount + '/bytedance-api/advertiser/aiBytedanceAdvertiserStrategy/updStaOrCpaOrBudgetById', data).then(result => {
+                if (result.code === 0) {
+                    this.$message.success(result.message);
+                    this.handleInitTable();
+                }
+                else {
+                    this.$message.error(result.message);
+                }
+            }).catch(error => {
+                console.log(error, 'eeee');
+            });
+        },
+        handleResetList() {
+            this.acountId = '';
+            this.handleInitTable();
+        },
+        handleInitTable() {
+            const paramsData = {
+                accountId: this.acountId,
+                logingUserId: this.userInfo().id,
+                pageNo: this.tablePag.page,
+                pageSize: this.tablePag.size
+            };
+            getAction(urlAcount + '/bytedance-api/advertiser/aiBytedanceAdvertiserStrategy/list', paramsData).then(result => {
+                if (result.code === 0) {
+                    result.result.records.forEach(item => {
+                        item.show = false;
+                        item.visible = false;
+                    });
+                    this.dataSource = result.result.records;
+                    this.totalAll = result.result.total;
+                }
+                else {
+                    this.$message.error(result.message);
+                }
+            }).catch(error => {
+                console.log(error, 'eeee');
+            });
+        },
+        handleListDelete(data) {
+            let that = this;
+            this.$confirm({
+                title: '删除提示',
+                content: '确定要删除这一条吗?',
+                onOk() {
+                    deleteAction(urlAcount + '/bytedance-api/advertiser/aiBytedanceAdvertiserStrategy/delete', {id: data.id}).then(result => {
+                        if (result.code === 0) {
+                            that.handleInitTable();
+                            that.$message.success('删除成功');
+                        }
+                        else {
+                            that.$message.error(result.message);
+                        }
+                    }).catch(error => {
+                        console.log(error, 'eeee');
+                    });
+                }
+            });
+        },
+        handleBudgetPopover(record) {
+            record.show = false;
+        },
+        handleModPopover(record) {
+            record.visible = false;
+        },
+        handleQueryList(event) {
+            event.preventDefault();
+            this.handleInitTable();
+        },
+        onShowSizeChange(current, pageSize) {
+            this.tablePag = {
+                page: current,
+                size: pageSize
+            };
+            this.handleInitTable();
+        },
+        handleSwitchChang(checked, data) {
+            const paramsData = {
+                id: data.id,
+                state: checked ? 0 : 1,
+                accountId: data.accountId
+            };
+            const forDate = new FormData();
+            forDate.append('id', paramsData.id);
+            forDate.append('state', paramsData.state);
+            forDate.append('accountId', paramsData.accountId);
+            putAction(urlAcount + '/bytedance-api/advertiser/aiBytedanceAdvertiserStrategy/updStaById', forDate).then(result => {
+                if (result.code === 0) {
+                    this.$message.success(result.message);
+                    this.handleInitTable();
+                }
+                else {
+                    this.$message.error(result.message);
+                }
+            }).catch(error => {
+                console.log(error, 'eeee');
+            });
+        },
+        handleEdit(data) {
+            // TODO 切换路由时候,及时删除上一次相同路由
+            let params = {
+                accountModal: 'edit',
+                id: data.id
+            };
+            localStorage.setItem('queryList', JSON.stringify(params));
+            this.$router.push('/account-config/components/configuration-modal');
+        },
+        handleAddAccountConfig() {
+            let params = {
+                accountModal: 'add'
+            };
+            localStorage.setItem('queryList', JSON.stringify(params));
+            this.$router.push('/account-config/components/configuration-modal');
+        }
+    }
+};
+</script>
+<style lang="less" scoped>
+    @import "account-config";
+</style>

+ 170 - 0
src/views/modules/account-config/components/configuration-modal.less

@@ -0,0 +1,170 @@
+.configuration-modal {
+    .ant-modal-body {
+        height: 600px !important;
+        overflow-y: auto;
+    }
+    .config-form-modal {
+        .btn-Unique-con {
+            display: flex;
+            justify-content: flex-start;
+            .sure-btn {
+                margin-left: 20px;
+            }
+            .cancel-btn {
+                margin-left: 20px;
+                margin-right: 20px;
+            }
+        }
+        .separate-title-header {
+            font-size: 22px;
+            font-weight: bold;
+            line-height: 50px;
+            height: 50px;
+            padding-left: 30px;
+            margin-bottom: 15px;
+            background: #fff;
+            margin: 0;
+        }
+        .separate-module-con {
+            width: 100%;
+            background: #fff;
+            padding: 15px 0;
+            margin-bottom: 15px;
+            .form-line {
+                width: 100%;
+                height: 1px;
+                background: #eee;
+            }
+            .rock-title {
+                padding-left: 40px;
+                font-size: 18px;
+                font-weight: 700;
+            }
+            .ant-form-item-label {
+                width: 140px;
+            }
+            .dp-link-start {
+                display: inline-block;
+                .ant-form-item-label {
+                    width: 100px;
+                    margin-left: 43px;
+                }
+                .ant-form-item-control-wrapper {
+                    width: 163px;
+                }
+            }
+            .dp-link-end {
+                display: inline-block;
+            }
+            .campaign-cnt-class {
+                display: inline-block;
+                .ant-form-item-label {
+                    width: 160px;
+                    margin-left: 73px;
+                }
+                .ant-form-item-control-wrapper {
+                    width: 110px;
+                }
+            }
+            .campaign-ad-class {
+                display: inline-block;
+                .ant-form-item-label {
+                    width: 110px;
+                }
+                .ant-form-item-control-wrapper {
+                    width: 120px;
+                }
+            }
+            .avatar-uploader > .ant-upload {
+                width: 128px;
+                height: 128px;
+                position: relative;
+            }
+            .ant-upload-select-picture-card i {
+                font-size: 32px;
+                color: #999;
+            }
+            .ant-upload-select-picture-card .ant-upload-text {
+                margin-top: 8px;
+                color: #666;
+            }
+            .upload-img-class {
+                position: absolute;
+                top: 0;
+                left: 0;
+                height: 100%;
+                .img-flex-url {
+                    width: 128px;
+                    display: flex;
+                    align-items: center;
+                    justify-content: center;
+                    height: 100%;
+                    img {
+                        max-width: 100%;
+                        max-height: 100%;
+                    }
+                }
+                .cover-img-div {
+                    position: absolute;
+                    top: 0;
+                    left: 0;
+                    width: 100%;
+                    height: 100%;
+                    line-height: 120px;;
+                    background: rgba(10, 10, 10, 0.5);
+                    z-index: 10000;
+                    .delete-icon-class {
+                        font-size: 20px;
+                        color: #1890ff;
+                    }
+                }
+            }
+            /deep/ .ant-form-item-control-wrapper {
+                width: 80%;
+            }
+            .common-input {
+                width: 150px;
+            }
+            .common-input-long {
+                width: 320px;
+            }
+            .acount-search-class {
+                width: 350px;
+            }
+            
+            .form-itrm-icon {
+                position: absolute;
+                top: 3px;
+                left: -175px;
+            }
+            .advers-title-class {
+                margin-left: 10px;
+                margin-right: 15px;
+            }
+            .adver-position-radio {
+                margin-left: 140px;
+                .creative-label-content {
+                    width: 400px;
+                    height: 200px;
+                    padding: 10px;
+                    border: 1px solid #eee;
+                    .tag-select-class {
+                        margin-bottom: 15px;
+                    }
+                }
+                .examin-form-icon {
+                    font-size: 18px;
+                    color: #1890ff;
+                    cursor: pointer;
+                    margin-left: 10px;
+                }
+            }
+            .position-radio-change {
+                margin-bottom: 10px;
+                /deep/ .ant-checkbox-wrapper {
+                    margin: 0 !important;
+                }
+            }
+        }
+    }
+}

文件差异内容过多而无法显示
+ 1417 - 0
src/views/modules/account-config/components/configuration-modal.vue


+ 106 - 0
src/views/modules/creative-copywrit/creative-copywrit.less

@@ -0,0 +1,106 @@
+@import '~@assets/less/common.less';
+
+/deep/ .examin-modal {
+    width: 700px !important;
+    .ant-modal-body {
+        height: 500px !important;
+        overflow-y: auto;
+    }
+    .acount-title {
+        display: flex;
+        font-size: 14px;
+        height: 40px;
+        line-height: 40px;
+        .acount-title-left {
+            margin-right: 20px;
+            width: 100px;
+        }
+        .examin-form-model {
+            width: 500px;
+            position: relative;
+            .examin-form-num {
+                position: absolute;
+                top: -10px;
+                right: -50px;
+            }
+            .examin-form-icon {
+                position: absolute;
+                top: 0px;
+                right: -85px;
+                font-size: 18px;
+                color: #1890ff;
+                cursor: pointer;
+            }
+        }
+        .examin-form-input {
+            width: 380px;
+        }
+    }
+    .push-plate {
+        margin-bottom: 20px;
+        .examin-select-title {
+            margin: 0 20px 0 20px;
+        }
+    }
+}
+
+/deep/ .recommend-modal {
+    width: 700px !important;
+    .ant-modal-body {
+        height: 500px !important;
+        overflow-y: auto;
+    }
+    .recommend-modal-header {
+        display: flex;
+        align-items: center;
+    }
+    .recommend-modal-content {
+        .check-box-class {
+            display: inline-block;
+            width: 50%;
+            white-space: nowrap;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            margin-bottom: 15px;
+        }
+    }
+}
+
+.solgan-whole-content {
+    display: flex;
+    height: 300px;
+    overflow-y: auto;
+    .solgan-title-header {
+        padding-top: 10px;
+        margin-right: 20px;
+        color: rgba(0, 0, 0, 0.85);
+    }
+    .solgan-form-class {
+        .examin-form-input {
+            width: 380px;
+        }
+        /deep/ .ant-form-item-children {
+            display: inline-flex;
+            align-items: center;
+        }
+        .default-value-class {
+            display: inline-block;
+            width: 300px;
+            overflow: hidden;
+            white-space: nowrap;
+            text-overflow: ellipsis;
+        }
+        .solgan-form-model {
+            .examin-form-num {
+                margin-left: 10px;
+                margin-right: 5px;
+            }
+            .examin-form-icon {
+                margin: 0 5px 0 5px;
+                font-size: 18px;
+                color: #1890ff;
+                cursor: pointer;
+            }
+        }
+    }
+}

文件差异内容过多而无法显示
+ 3124 - 0
src/views/modules/creative-copywrit/creative-copywrit.vue


+ 11 - 5
src/views/modules/crowd-control/components/tree-select/tree-select.vue

@@ -69,7 +69,8 @@ export default {
             applyTypeOption: [],
             selectRightData: new Set(),
             spinning: true,
-            leftTreeNoData: false
+            leftTreeNoData: false,
+            middleValue: []
         };
     },
     mounted() {
@@ -146,6 +147,12 @@ export default {
         onChange(e) {
             const value = e.target.value;
             this.treeData = value !== '' ? this.getNewTreeData(this.updateTreeData, value) : [...this.updateTreeData];
+            if(value !== '') {
+                this.middleValue = this.checkedKeys.filter(item=>typeof item === 'number');
+            }
+            else {
+                this.middleValue = [];
+            }
             if (!this.treeData.length) {
                 this.spinning = false;
                 this.leftTreeNoData = true;
@@ -230,12 +237,11 @@ export default {
             }
         },
         onCheck(checkedKeys) {
-            // this.checkedKeys = checkedKeys;
             this.nodes(this.treeData, checkedKeys);
-            const filterCheckKey = this.checkedKeys.filter(item=>typeof item ==='number');
-            let filterCheckKeySet = new Set(filterCheckKey);
+            const filterCheckKey = this.checkedKeys.filter(item => typeof item === 'number');
+            let filterCheckKeySet = new Set(filterCheckKey.concat(this.middleValue));
             let selectRightDataSet = new Set(this.selectRightData);
-            let difference = new Set([...selectRightDataSet].filter((item) => !filterCheckKeySet.has(item.key)));
+            let difference = new Set([...selectRightDataSet].filter(item => !filterCheckKeySet.has(item.key)));
             this.selectRightData.delete(...difference);
             this.applyTypeOption = this.Es6duplicate([...this.selectRightData], 'key');
             const changeSelectData = this.applyTypeOption.map(item => item.key);

+ 3 - 3
src/views/modules/crowd-control/crowd-control.vue

@@ -389,7 +389,7 @@ export default {
             });
         },
         handleDelete(data) {
-            let that = this
+            let that = this;
             this.$confirm({
                 title: '删除提示',
                 content: '确定要删除这一条吗?',
@@ -524,8 +524,8 @@ export default {
                         console.log(error, 'eeee');
                         reject();
                     });
-                })
-            })
+                });
+            });
         },
         handleChange(info) {
             this.fileList = info.fileList;

+ 2 - 1
vue.config.js

@@ -71,7 +71,7 @@ module.exports = {
           // target: 'http://192.168.1.8:8080', //请求本地 需要jeecg-boot后台项目  蒙蒙
           target: 'http://192.168.1.3:8080', //请求本地 需要jeecg-boot后台项目  蒙蒙
         // target: 'http://192.168.0.59:8088', //请求本地 需要jeecg-boot后台项目  英豪
-        // target: 'http://192.168.1.188:8088', //请求本地 需要jeecg-boot后台项目  英豪
+        // target: 'http://192.168.1.62:8088', //请求本地 需要jeecg-boot后台项目  英豪
         // target: 'http://192.168.2.115:8080', //请求本地 需要jeecg-boot后台项目  祚云
         // target: 'http://192.168.1.43:8098', //请求本地 需要jeecg-boot后台项目  毕洁泉
         // target: 'http://192.168.1.43:8088', //请求本地 需要jeecg-boot后台项目  毕洁泉
@@ -86,6 +86,7 @@ module.exports = {
         //  target: 'http://adsp.tjyourong.com.cn/', //请求本地 需要jeecg-boot后台项目
         // target: 'http://192.168.1.251/', //请求本地 需要jeecg-boot后台项目 
         // target:'http://118.24.244.213:8804',
+        // target: 'http://192.168.1.43:8080', // 子安
       //  target:'http://139.186.165.84:8806', //测试
 
         ws: false,