朱鑫波 3 anni fa
parent
commit
5966367b7a

+ 3 - 0
.env.development

@@ -8,3 +8,6 @@ VUE_APP_BASE_REPORT_URL = http://api.tjyourong.com.cn/reportModule
 # 宋英豪 http://192.168.1.67:9999
 # 周泽宇 http://192.168.1.134:9999
 # 杨字安 http://192.168.1.43:9999
+
+#脚本视频接口
+VUE_APP_BASE_SCRIPT_URL = http://139.186.134.115:31013

+ 6 - 1
.env.production

@@ -4,4 +4,9 @@ VUE_APP_BASE_API_URL = http://118.24.244.213:3030
 #账户报表/素材报表接口地址
 VUE_APP_BASE_REPORT_URL = http://api.tjyourong.com.cn/reportModule
 # 测试地址 http://gateway.tjyourong.com.cn
-# 线上地址 http://api.tjyourong.com.cn
+# 线上地址 http://api.tjyourong.com.cn
+
+#脚本视频接口
+VUE_APP_BASE_SCRIPT_URL = http://114.117.193.186:31013
+# 线上地址 http://114.117.193.186:31013
+# 测试地址 http://139.186.134.115:31013

+ 3 - 2
src/utils/request.js

@@ -21,8 +21,9 @@ else if (process.env.NODE_ENV === 'debug') {
 else if (process.env.NODE_ENV === 'production') {
 	// axios.defaults.baseURL = 'http://apipre.tjyourong.com.cn/jeecg-boot'; // 预生产
 	// axios.defaults.baseURL = 'http://gateway.tjyourong.com.cn/jeecg-boot';//测试
-	axios.defaults.baseURL = 'http://api.tjyourong.com.cn/jeecg-boot'; // 生产环境
-	// axios.defaults.baseURL = 'http://gateway.tjyourong.com.cn/jeecg-boot'; // 生产环境
+	// axios.defaults.baseURL = 'http://api.tjyourong.com.cn/jeecg-boot'; // 生产环境
+	// axios.defaults.baseURL = 'http://gateway.tjyourong.com.cn/jeecg-boot'; // 测试环境
+	axios.defaults.baseURL = 'http://192.168.0.195:9999/jeecg-boot'; // 测试环境
 
 }
 const service = axios.create({

+ 9 - 8
src/views/modules/Statistics/Statistics.vue

@@ -9,14 +9,7 @@
 .search-box{
   padding: 15px 10px;
 }
-.search-box p {
-  display: inline-block;
-  border: 1px solid #f2f2f2;
-  border-radius: 5px;
-  margin-right: 10px;
-  padding: 5px 10px;
-  cursor: pointer;
-}
+
 .statistics .ant-col-6 .ant-card-body .styleElse {
   line-height: 60px;
   height: 40px;
@@ -42,6 +35,14 @@
   right: 10px;
 }
 .statistics{
+  .search-box p {
+    display: inline-block;
+    border: 1px solid #f2f2f2;
+    border-radius: 5px;
+    margin-right: 10px;
+    padding: 5px 10px;
+    cursor: pointer;
+  }
   .ant-card-bordered {
      border: none; 
   }

+ 1 - 1
src/views/modules/Statistics/popularVideo.vue

@@ -57,7 +57,7 @@
 		right: 10px;
 	}
 </style>
-<style lang='less'>
+<style lang='less' scoped>
 	.ant-card-head .ant-tabs-bar{
 		padding: 0;
 	}

+ 2 - 2
src/views/modules/account-config/account-config-server.js

@@ -3,8 +3,8 @@
  * @author jiayufei
  */
 
-export const urlAcount = 'http://118.24.244.213:8808'; // 线上
+// export const urlAcount = 'http://118.24.244.213:8808'; // 线上
 // export const urlAcount = 'http://apipre.tjyourong.com.cn'; // 预生产
 // export const urlAcount = 'http://192.168.1.43:8808'; // 子安
-// export const urlAcount = 'http://139.186.165.84:8808'; // 测试
+export const urlAcount = 'http://139.186.165.84:8808'; // 测试
 // export const urlAcount = 'http://192.168.1.8:8080'; // 学超

+ 3 - 2
src/views/modules/account-config/account-config.vue

@@ -69,7 +69,7 @@
                     {{ record.accountBudgetMode === '1' ? '不限' : text }}
                 </span>
                 <span slot="action" slot-scope="text, record">
-                    <a @click="handleCopy(record)" disabled>复制</a>
+                    <a @click="handleCopy(record)">复制</a>
                     <a-divider type="vertical"/>
                     <a @click="handleEdit(record)">编辑</a>
                     <a-divider type="vertical"/>
@@ -586,7 +586,8 @@ export default {
                         id: data.id
                     };
                     localStorage.setItem('queryList', JSON.stringify(params));
-                    that.$router.push('/account-config/components/configuration-copy');
+                    that.$router.push('/account-config/components/configuration-modal');
+                    // /account-config/components/configuration-copy
                 }
             });
         },

+ 88 - 34
src/views/modules/account-config/components/configuration-modal.vue

@@ -10,7 +10,7 @@
             :wrapper-col="wrapperCol"
         >
             <a-spin :spinning="spinning">
-                <p class="separate-title-header">{{ modalTitle === 'add' ? '新增' : '编辑'}}配置信息</p>
+                <p class="separate-title-header">{{ modalTitle === 'add' ? '新增' : modalTitle === 'edit' ?'编辑':'复制'}}配置信息</p>
                 <div class="separate-module-con">
                     <a-form-model-item label="广告账户">
                         <acount-search
@@ -1257,19 +1257,41 @@ export default {
         };
         let budgetValidator = (rule, value, callback) => {
             if (this.modalTitle === 'edit') {
-                if (Number(value) > Number(this.defaultAdBudget) && Number(value) < (Number(this.defaultAdBudget) + 100)) {
-                    callback('单次修改预算幅度, 不能低于100.0元');
-                }
-                else if (Number(value) < Number(this.defaultAdBudget) && Number(value) > (Number(this.defaultAdBudget) - 100)) {
-                    callback('单次修改预算幅度, 不能低于100.0元');
+                if(this.defaultAdBudget!=''){
+                    if (Number(value) > Number(this.defaultAdBudget) && Number(value) < (Number(this.defaultAdBudget) + 100)) {
+                        callback('单次修改预算幅度, 不能低于100.0元');
+                    }
+                    else if (Number(value) < Number(this.defaultAdBudget) && Number(value) > (Number(this.defaultAdBudget) - 100)) {
+                        callback('单次修改预算幅度, 不能低于100.0元');
+                    }
+                    else {
+                        callback();
+                    }
                 }
                 else {
                     callback();
                 }
+               
             }
             else if (this.modalTitle === 'add') {
                 callback();
             }
+            else if (this.modalTitle === 'copy') {
+                if(this.defaultAdBudget!=''){
+                    if (Number(value) > Number(this.defaultAdBudget) && Number(value) < (Number(this.defaultAdBudget) + 100)) {
+                        callback('单次修改预算幅度, 不能低于100.0元');
+                    }
+                    else if (Number(value) < Number(this.defaultAdBudget) && Number(value) > (Number(this.defaultAdBudget) - 100)) {
+                        callback('单次修改预算幅度, 不能低于100.0元');
+                    }
+                    else {
+                        callback();
+                    }
+                }
+                else {
+                    callback();
+                }
+            }
         };
         return {
             spinning: false,
@@ -1881,6 +1903,10 @@ export default {
             this.modalTitle = 'add';
             this.spinning = false;
         }
+        else if (routeQuery.accountModal === 'copy') {
+            this.modalTitle = 'copy';
+            this.handleGetDetailList();
+        }
     },
     methods: {
         ...mapGetters(['nickname', 'avatar', 'userInfo']),
@@ -2417,6 +2443,8 @@ export default {
             this.configForm.creativeWebUrl = '';
             // this.platformLoadingType = '';
             const defaultValue = e.target.value;
+            this.configForm.adConvertType = undefined
+            this.configForm.adConvertId = undefined
             if (defaultValue === 'DOWNLOAD_URL') {
                 this.configForm.adExternalUrl = '';
                 this.configForm.adOpenUrl = '';
@@ -2505,15 +2533,17 @@ export default {
                             getAction(urlAcount + '/bytedance-api/advertiser/aiBytedanceAdvertiserStrategy/getAdAudiencePackage', {accountId: detailData.accountId})
                                 .then(result => {
                                     if (result.code === 0) {
-                                        let checkboxChangeValueList = detailData.creativeInventoryType ? detailData.creativeInventoryType.split(',') : [];
-                                        if (checkboxChangeValueList.length === 1 && checkboxChangeValueList[0] === 'INVENTORY_UNION_SLOT') {
-                                            this.selectiveList = result.result.filter(item => item.delivery_range === 'UNION');
-                                        }
-                                        else {
-                                            this.selectiveList = result.result || [];
-                                        }
-                                        this.configForm.adAudiencePackageId = Number(detailData.adAudiencePackageId);
-                                        this.handleSelectiveOrientation(Number(detailData.adAudiencePackageId));
+                                        this.$nextTick(()=>{
+                                            let checkboxChangeValueList = detailData.creativeInventoryType ? detailData.creativeInventoryType.split(',') : [];
+                                            if (checkboxChangeValueList.length === 1 && checkboxChangeValueList[0] === 'INVENTORY_UNION_SLOT') {
+                                                this.selectiveList = result.result.filter(item => item.delivery_range === 'UNION');
+                                            }
+                                            else {
+                                                this.selectiveList = result.result || [];
+                                            }
+                                            this.configForm.adAudiencePackageId = Number(detailData.adAudiencePackageId);
+                                            this.handleSelectiveOrientation(Number(detailData.adAudiencePackageId));
+                                        })
                                     }
                                     else {
                                         this.$message.error(result.message);
@@ -2533,7 +2563,9 @@ export default {
                         this.configForm.campaignName = detailData.campaignName || '';
                         this.configForm.dpLinkIndexUsed = detailData.dpLinkIndexUsed;
                         if (detailData.dpLinkIndexUsed === 1) {
-                            this.adNameTags.push('dp链接标识');
+                            this.$nextTick(() => {
+                                this.adNameTags.push('dp链接标识');
+                            })
                         }
                         this.configForm.adName = detailData.adName || '';
                         this.configForm.campaignCnt = detailData.campaignCnt || '';
@@ -2553,6 +2585,7 @@ export default {
                         this.configForm.adConvertType = detailData.adConvertType || '';
                         this.configForm.adDistrict = detailData.adDistrict || 'NONE';
                         this.configForm.adAppType = detailData.adAppType;
+                        this.handleGetPackage()
                         getAction(urlAcount + '/bytedance-api/advertiser/aiBytedanceAdvertiserStrategy/getChengZiSite', {accountId: detailData.accountId}).then(result => {
                             if (result.code === 0) {
                                 const defaultResult = result.result;
@@ -2570,7 +2603,10 @@ export default {
                             console.log(error, 'eeee');
                         });
                         if (detailData.adDownloadType === 'DOWNLOAD_URL') {
-                            this.handleGetPackage();
+                            this.$nextTick(()=>{
+                                this.handleGetPackage();
+                            })
+                            
                         }
                         setTimeout(() => {
                             this.listArr = detailData.adCity.split(',').map(item => Number(item));
@@ -2638,7 +2674,7 @@ export default {
                         this.configForm.adCpaBid = detailData.adCpaBid;
                         this.configForm.creativeActionTrackUrl = detailData.creativeActionTrackUrl;
                         this.configForm.creativeMaterialMode = detailData.creativeMaterialMode;
-                        this.configForm.creativeImageMode = detailData.creativeImageMode;
+
                         this.configForm.creativeProductDescription = detailData.creativeProductDescription;
                         this.configForm.creativeEnablePersonalAction = detailData.creativeEnablePersonalAction;
                         const params = {
@@ -2673,26 +2709,32 @@ export default {
                         this.urlResult = detailData.imageUrl;
                         this.md5Result = detailData.creativeProductImageCode;
                         if (detailData.adAndroidOsv !== 'NONE') {
-                            this.configForm.adAndroidVersion = 'a';
-                            this.configForm.androidChangeValue = detailData.adAndroidOsv;
+                            this.$nextTick(()=>{
+                                this.configForm.adAndroidVersion = 'a';
+                                this.configForm.androidChangeValue = detailData.adAndroidOsv;
+                            })
                         }
                         else {
                             this.configForm.adAndroidVersion = 'NONE';
                         }
                         if (detailData.productSellingPoints) {
-                            let productPointsList = [];
-                            const randomNum = new Date().getTime() + Math.ceil(Math.random() * 1000);
-                            detailData.productSellingPoints.forEach((item, index) => {
-                                productPointsList.push({
-                                    id: randomNum + index,
-                                    value: item
+                            this.$nextTick(()=>{
+                                let productPointsList = [];
+                                const randomNum = new Date().getTime() + Math.ceil(Math.random() * 1000);
+                                detailData.productSellingPoints.forEach((item, index) => {
+                                    productPointsList.push({
+                                        id: randomNum + index,
+                                        value: item
+                                    });
                                 });
-                            });
-                            this.configForm.defaultFormList = productPointsList;
+                                this.configForm.defaultFormList = productPointsList;
+                            })
                         }
                         if (detailData.adScheduleTime.indexOf(1) !== -1) {
-                            this.configForm.launchTimeInterval = 'a';
-                            this.configForm.scheduleTimeData = detailData.adScheduleTime;
+                            this.$nextTick(()=>{
+                                this.configForm.launchTimeInterval = 'a';
+                                this.configForm.scheduleTimeData = detailData.adScheduleTime;
+                            })
                         }
                         else {
                             this.configForm.launchTimeInterval = 'buxian';
@@ -2705,14 +2747,18 @@ export default {
                             this.configForm.adverPosition = 'b';
                             this.configForm.checkboxChangeValue = detailData.creativeInventoryType.split(',');
                             if (this.configForm.checkboxChangeValue.includes('INVENTORY_AWEME_FEED')) {
-                                this.isTAwemeStatus = true;
+                                this.$nextTick(()=>{
+                                    this.isTAwemeStatus = true;
+                                })
                             }
                             else {
                                 this.isTAwemeStatus = false;
                             }
                             if (this.configForm.checkboxChangeValue.length === 1 && this.configForm.checkboxChangeValue[0] === 'INVENTORY_UNION_SLOT') {
-                                this.configForm.adUnionVideoType = detailData.adUnionVideoType;
-                                this.configForm.adDeliveryRange = 'UNION';
+                                this.$nextTick(()=>{
+                                    this.configForm.adUnionVideoType = detailData.adUnionVideoType;
+                                    this.configForm.adDeliveryRange = 'UNION';
+                                })
                             }
                             else {
                                 this.configForm.adUnionVideoType = '';
@@ -2724,8 +2770,13 @@ export default {
                             this.configForm.adverPosition = 'a';
                         }
                         if (detailData.adKeywords) {
-                            this.creativeTag = detailData.adKeywords;
+                            this.$nextTick(()=>{
+                                this.creativeTag = detailData.adKeywords;
+                            })
                         }
+                        this.$nextTick(()=>{
+                            this.configForm.creativeImageMode = detailData.creativeImageMode;
+                        })
                         this.configForm.adInterestActionMode = detailData.adInterestActionMode;
                         this.configForm.creativeDisplayMode = detailData.creativeDisplayMode;
                         this.configForm.creativeIsPresentedVideo = detailData.creativeIsPresentedVideo;
@@ -3162,6 +3213,9 @@ export default {
                     else if (this.modalTitle === 'edit') {
                         this.handleEditList(paramsFormData);
                     }
+                    else if (this.modalTitle === 'copy') {
+                        this.handleAddList(paramsFormData);
+                    }
                 }
                 else {
                     console.log('error submit!!');

+ 4 - 0
src/views/modules/autoLaunch/configLaunchInfo.vue

@@ -2533,6 +2533,10 @@ export default {
                 }).then(res => {
                     if (res.success) {
                         this.refreshPopulationLoading = false
+                        this.excludeSelectedRowKeys = []
+                        this.excludeSelectedKeys=[]
+                        this.incluedSelectedRowKeys = []
+                        this.incluedSelectedKeys=[]
                         this.$message.success(res.message)
                         this.retargetTabChange()
                     } else {

File diff suppressed because it is too large
+ 2680 - 0
src/views/modules/autoLaunch/trusteeship/creatMaterialTest.vue


File diff suppressed because it is too large
+ 1421 - 0
src/views/modules/autoLaunch/trusteeship/index.vue


File diff suppressed because it is too large
+ 1136 - 0
src/views/modules/autoLaunch/trusteeship/lookPreview.vue


+ 306 - 0
src/views/modules/autoLaunch/trusteeship/treeSelectAccount.vue

@@ -0,0 +1,306 @@
+<style lang="scss" scoped>
+.select-project {
+    width: 50%;
+}
+</style>
+<template>
+    <div class="select-project">
+        <treeselect
+            :multiple="multiple"
+            :disable-branch-nodes="!multiple"
+            :disable-fuzzy-matching="true"
+            :options="options"
+            :load-options="loadOptions"
+            placeholder="请选择项目以及账户"
+            v-model="value"
+            :value-consists-of="valueConsistsOf"
+            :auto-load-root-options="false"
+            @select="update"
+            @input="emitValue"
+            :limit="limit"
+            :default-options="true"
+            :disabled="disabled"
+            :limitText="
+                count => {
+                    return '隐藏' + count + '条'
+                }
+            "
+            noChildrenText="该项目下暂无账号"
+            :noOptionsText="showLoading"
+        />
+    </div>
+</template>
+
+<script>
+//   @open="getParticipateList"
+// import the component
+import Treeselect from '@riophae/vue-treeselect'
+// import the styles
+import '@riophae/vue-treeselect/dist/vue-treeselect.css'
+import { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect'
+
+import { getAction, postAction } from '@/api/manage'
+import { mapGetters } from 'vuex'
+// We just use `setTimeout()` here to simulate an async operation
+// instead of requesting a real API server for demo purpose.
+let called = false
+export default {
+    data: () => ({
+        value: null,
+        valueConsistsOf: 'LEAF_PRIORITY',
+        options: [],
+        showLoading: 'loading...'
+    }),
+    props: {
+        oneData: {
+            type: Boolean,
+            default() {
+                return false
+            }
+        },
+        //是否多选
+        multiple: {
+            type: Boolean,
+            default() {
+                return true
+            }
+        },
+        appId: {
+            default() {
+                return ''
+            }
+        },
+        //判断媒体类型
+        request: {
+            type: String,
+            default() {
+                return '2,4'
+            }
+        },
+        //一级请求接口
+        reqUrl: {
+            type: String,
+            default() {
+                return '/ctop/projectMember/participateListByMediaId'
+            }
+        },
+        // 展示条数
+        limit: {
+            type: Number,
+            default() {
+                return 2
+            }
+        },
+        disabled: {
+            type: Boolean,
+            default() {
+                return false
+            }
+        }
+    },
+    components: {
+        Treeselect
+    },
+    watch: {
+        $route(n, o) {},
+        appId: {
+            handler(n, o) {
+                console.log(n)
+                if (n.length == 0) {
+                    if (this.multiple) {
+                        this.value = []
+                    } else {
+                        this.value = undefined
+                    }
+                } else {
+                    this.value = this.appId
+                }
+            },
+            deep: true,
+            immediate: true
+        }
+    },
+    methods: {
+        ...mapGetters(['nickname', 'avatar', 'userInfo']),
+        update(node, id) {
+            this.$emit('select-value', node)
+            console.log(node)
+            if (typeof node.id == 'string' && node.id.indexOf('p') != -1) {
+                getAction('/ctop/userAllocation/getByProjectId', {
+                    projectId: node.id.split('p')[0]
+                }).then(res => {
+                    // console.log(res)
+                    if (res.code == 0) {
+                        if (res.result.length > 0) {
+                            node.children = res.result.map(item => {
+                                return {
+                                    id: item.userId ? item.userId : '',
+                                    label: item.userId ? item.userId : '',
+                                    children: item.accounts.map(c => {
+                                        return {
+                                            id: c.accountId,
+                                            label:
+                                                c.userName +
+                                                '\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0' +
+                                                c.authName
+                                        }
+                                    })
+                                }
+                            })
+                        } else {
+                        }
+                    } else {
+                        new Error('Failed to load options: network error.')
+                    }
+                })
+            }
+        },
+        emitValue(value, id) {
+            this.$emit('update:appId', this.value)
+        },
+        loadOptions({ action, parentNode, callback }) {
+            // Typically, do the AJAX stuff here.
+            // Once the server has responded,
+            // assign children options to the parent node & call the callback.
+            if (action === LOAD_CHILDREN_OPTIONS) {
+                getAction('/ctop/userAllocation/getByProjectId', {
+                    projectId: parentNode.id.split('p')[0]
+                }).then(res => {
+                    if (res.code == 0) {
+                        if (res.result.length > 0) {
+                            parentNode.children = res.result.map(item => {
+                                return {
+                                    id: item.userId ? item.userId : '',
+                                    label: item.userId ? item.userId : '',
+                                    children: item.accounts.map(c => {
+                                        return {
+                                            id: c.accountId,
+                                            label:
+                                                c.userName +
+                                                '\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0' +
+                                                c.authName
+                                        }
+                                    })
+                                }
+                            })
+                            callback()
+                        } else {
+                            parentNode.children = []
+                            callback()
+                        }
+                    } else {
+                        callback(new Error('Failed to load options: network error.'))
+                    }
+                })
+            }
+        },
+        getParticipateList() {
+            //我参与的
+            //   toutiaoParticipateList
+            var params = {}
+            params.userId = this.userInfo().id
+
+            if (this.request == '1,3') {
+                params.type = 'bytedance'
+            } else if (this.request == '2,4') {
+                params.type = 'kuaishou'
+            }
+
+            if (this.reqUrl == '/ctop/projectMember/participateListByMediaId') {
+                if (this.options.length > 0) {
+                    return
+                }
+                // 2021/9/1 蒙蒙让修改 接口增加 userId 原来的url链接并没有使用声明好的params
+                getAction('/ctop/projectMember/projectList', {userId: this.userInfo().id}).then(res => {
+                    if (res.success) {
+                        this.options = res.data.map(item => {
+                            return {
+                                id: item.id + 'projectId',
+                                label: item.projectName,
+                                children: null
+                            }
+                        })
+                        if (this.oneData && !this.multiple) {
+                            var data = this.options.filter(item => {
+                                if (item.children && item.children.length > 0) {
+                                    return { ...item }
+                                }
+                            })
+                            this.$emit('update:appId', data[0].children[0].id)
+                        }
+                    }
+                })
+            } else if (this.reqUrl == '/ctop/projectMember/getProjectAccountByUserId') {
+                getAction(this.reqUrl, {
+                    mediaType: this.request,
+                    userId: this.userInfo().id
+                }).then(res => {
+                    if (res.code == 0) {
+                        if (res.result.length > 0) {
+                            res.result.forEach((element, index) => {
+                                if (element) {
+                                    this.options.push({})
+                                    this.options[index].label =
+                                        element.project.projectName + '_(' + element.project.advertiserName + ')'
+                                    this.options[index].id = 'project' + element.project.projectId
+                                    this.options[index].key = element.project.projectId
+                                    this.options[index].mediaId = element.project.mediaId
+                                    this.options[index].children = []
+
+                                    if (element.account.length) {
+                                        element.account.forEach((ele, i) => {
+                                            this.options[index].children.push({})
+                                            this.options[index].children[i].label =
+                                                ele.userName + '_' + ele.authName + '_' + element.project.projectName
+                                            this.options[index].children[i].id = ele.accountId
+                                            this.options[index].children[i].key = ele.accountId
+                                        })
+                                    }
+                                }
+                            })
+                        } else {
+                            this.showLoading = '暂无数据'
+                        }
+                    }
+                })
+            } else {
+                getAction(this.reqUrl, {
+                    userId: this.userInfo().id
+                }).then(res => {
+                    if (res.code == 0) {
+                        if (res.result.length > 0) {
+                            var arr = this.request.split(',')
+                            var dataTwo = []
+                            var data = res.result.filter(item => {
+                                return item.mediaId == arr[0]
+                            })
+                            if (arr.length > 1) {
+                                dataTwo = res.result.filter(item => {
+                                    return item.mediaId == arr[1]
+                                })
+                            }
+                            var allData = data.concat(dataTwo)
+                            this.options = allData.map(item => {
+                                return {
+                                    id: item.projectId,
+                                    label:
+                                        item.projectName +
+                                        '\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0' +
+                                        item.advertiserName,
+                                    children: null
+                                }
+                            })
+                        } else {
+                            this.showLoading = '暂无数据'
+                        }
+                    }
+                })
+            }
+        }
+    },
+
+    mounted() {
+        this.getParticipateList()
+    }
+}
+</script>

+ 2 - 1
src/views/modules/creative-copywrit/creative-copywrit.vue

@@ -2599,7 +2599,8 @@ export default {
             }
             const paramsData = {
                 offlineFlag: 1,
-                id: this.checkArr.join(',')
+                id: this.checkArr.join(','),
+                userId: this.userInfo().id
             };
             let that = this;
             this.$confirm({

+ 2 - 1
src/views/modules/kuaishouapp/account/stepForm/stepModule/selectRegion.vue

@@ -50,8 +50,9 @@
     display: none;
   }
 
-  p {
+  .transfer p {
     padding: 5px;
+    width: 100%;
     margin-bottom: 0;
     border-bottom: 1px solid #f2f2f2;
   }

+ 1 - 1
src/views/modules/material/videoMaterial.vue

@@ -853,7 +853,7 @@ a {
                         <a-menu-item key="5">
                           <a href="javascript:;" style="margin-right: 20px" @click="editTagList(items)">修改标签</a>
                         </a-menu-item>
-                        <a-menu-item key="6"  v-show="active !== '1'"  v-if="items.userId == userInfo().id">
+                        <a-menu-item key="6"  v-show="active !== '1'"  v-if="items.userId == userInfo().id ||(userInfo().id == 'a549d89000eb432d80af11e1be8a623a' && items.projectId == 4830885)">
                           <a href="javascript:;" style="margin-right: 20px" @click="editMaterialName(items)">修改素材名称</a>
                         </a-menu-item>
                         <a-menu-item key="7" v-show="active === '0' || active === '1'">

+ 982 - 0
src/views/modules/script/index.vue

@@ -0,0 +1,982 @@
+<style lang="scss" scoped>
+.adver-position-radio {
+    margin-bottom: 15px;
+    .create-web-url-class {
+        width: 320px;
+        height: 110px;
+        background-color: #f9f8f8;
+        display: flex;
+        .web-url-img {
+            width: 53px;
+            img {
+                width: 100%;
+            }
+        }
+        .web-url-content {
+            margin-top: 10px;
+            margin-left: 10px;
+            .url-content-id {
+                margin-top: 10px;
+            }
+        }
+    }
+    .creative-label-content {
+        width: 400px;
+        height: 200px;
+        padding: 10px;
+        border: 1px solid #eee;
+        .label-content-select-tag {
+            height: 80%;
+            overflow: auto;
+        }
+        .tag-select-class {
+            margin-bottom: 15px;
+        }
+    }
+    .examin-form-icon {
+        font-size: 18px;
+        color: #1890ff;
+        cursor: pointer;
+        margin-left: 10px;
+    }
+}
+.search-bar {
+    display: flex;
+    align-items: center;
+}
+.search-box p {
+    display: inline-block;
+    border: 1px solid #f2f2f2;
+    border-radius: 5px;
+    margin-right: 10px;
+    padding: 5px 10px;
+    cursor: pointer;
+}
+.card-person-drawer {
+    width: 100%;
+    height: 90%;
+    overflow: hidden;
+    padding: 10px 0px;
+    display: flex;
+    flex-wrap: wrap;
+    margin-right: -10px;
+    ::v-deep .ant-card-body {
+        padding: 0;
+    }
+    ::v-deep .ant-card-head {
+        padding: 0 5px;
+    }
+    .card-item {
+        width: calc(20% - 10px);
+        margin: 10px 5px;
+        float: left;
+    }
+    .card-item-else {
+        width: calc(20% - 10px);
+        margin: 10px 5px;
+        float: left;
+    }
+}
+</style>
+<style scoped>
+.showNumBox {
+    margin: 10px 0;
+}
+.showNumBox .ant-card-body {
+    display: flex;
+    justify-content: center;
+}
+.showNumBox p,
+.showNumBox span {
+    text-align: center;
+    line-height: 40px;
+    font-size: 30px;
+    font-weight: 600;
+    color: red;
+    margin: 0;
+}
+.search-box .ant-card-body {
+    padding: 5px 15px;
+}
+.showNumBox .ant-card-body .styleElse {
+    line-height: 60px;
+    height: 40px;
+    font-size: 16px;
+    font-weight: 400;
+    margin-left: 10px;
+}
+.ant-modal-wrap .yincang .ant-modal-content .ant-modal-footer {
+    display: none !important;
+}
+.yincang .ant-col-6 p {
+    text-align: left;
+    color: red;
+    font-size: 16px;
+    font-weight: 500;
+}
+.ant-table-thead div {
+    font-weight: 700;
+}
+.tool-tip {
+    position: absolute;
+    top: 65px;
+    right: 10px;
+}
+</style>
+<style lang="less" scoped>
+.ant-card-head .ant-tabs-bar {
+    padding: 0;
+}
+.search-box .ant-card-body {
+    padding: 5px 15px;
+}
+.search-box {
+    padding: 15px 10px;
+}
+.search-box p {
+    display: inline-block;
+    border: 1px solid #f2f2f2;
+    border-radius: 5px;
+    margin-right: 10px;
+    padding: 5px 10px;
+    cursor: pointer;
+}
+.statistics .ant-col-6 .ant-card-body .styleElse {
+    line-height: 60px;
+    height: 40px;
+    font-size: 16px;
+    font-weight: 400;
+    margin-left: 10px;
+}
+.ant-modal-wrap .yincang .ant-modal-content .ant-modal-footer {
+    display: none !important;
+}
+.yincang .ant-col-6 p {
+    text-align: left;
+    color: red;
+    font-size: 16px;
+    font-weight: 500;
+}
+.ant-table-thead div {
+    font-weight: 700;
+}
+.tool-tip {
+    position: absolute;
+    top: 65px;
+    right: 10px;
+}
+.statistics {
+    .ant-card-bordered {
+        border: none;
+    }
+    .ant-card-head .ant-tabs {
+        clear: both;
+        margin-bottom: -13px;
+        color: rgba(0, 0, 0, 0.65);
+        font-weight: normal;
+        font-size: 14px;
+    }
+    .duibi {
+        position: absolute;
+        right: 24px;
+        top: 15px;
+    }
+    p {
+        margin-bottom: 0;
+    }
+}
+</style>
+
+<style lang="less" scoped>
+.middle-button {
+    margin: 0 8px;
+}
+.newPlanStatic {
+    .divider {
+        height: 62px;
+    }
+    .showNumBox {
+        background: white;
+        overflow: hidden;
+        margin: 15px 0;
+        padding: 30px 0;
+        text-align: center;
+        .ant-card-body {
+            padding-top: 0;
+        }
+        .title {
+            font-size: 14px;
+            font-family: PingFangSC-Regular, PingFang SC;
+            font-weight: 400;
+            color: #999999;
+            line-height: 22px;
+            display: inline-block;
+        }
+    }
+    .tabbody {
+        background: white;
+        padding: 0 24px;
+        margin-bottom: 15px;
+        .ant-tabs-bar {
+            margin: 0;
+        }
+    }
+    .chartBox {
+        background: white;
+        padding: 20px 0;
+    }
+    .tableBody {
+        background: white;
+        padding: 20px;
+    }
+}
+</style>
+<style>
+.display-none-selset {
+    display: none !important;
+}
+</style>
+<template>
+    <div class="newPlanStatic config-project">
+        <div class="tabbody">
+            <a-tabs v-model="tabKey" @change="tabChange">
+                <a-tab-pane :key="1" tab="脚本配置列表"> </a-tab-pane>
+                <a-tab-pane :key="2" tab="脚本数据导出列表"> </a-tab-pane>
+                <a-button slot="tabBarExtraContent" type="primary" @click="newCreat(null)" v-if="tabKey == 1">
+                    新建
+                </a-button>
+            </a-tabs>
+        </div>
+        <a-card>
+            <div class="table-page-search-wrapper">
+                <a-form layout="inline" :form="form" hide-required-mark :selfUpdate="true" @submit="handleQueryList">
+                    <a-row :gutter="24" v-if="tabKey === 1">
+                        <a-col :md="6" :sm="6" :xxl="6">
+                            <a-form-item label="关键字">
+                                <a-input v-decorator="['search_word']" placeholder="请输入关键字" />
+                            </a-form-item>
+                        </a-col>
+                        <a-col :md="6" :sm="6" :xxl="6">
+                            <a-form-item label="时间选择">
+                                <a-range-picker
+                                    v-decorator="[
+                                        'timeRange',
+                                        { initialValue: [moment().subtract(6, 'days'), moment()] }
+                                    ]"
+                                    :ranges="dateRanges"
+                                    :disabled-date="disabledDate"
+                                />
+                            </a-form-item>
+                        </a-col>
+
+                        <a-col :md="6" :sm="6" :xxl="6">
+                            <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
+                                <a-button type="primary" icon="search" @click="handleQueryList">查询</a-button>
+                                <a-button type="primary" @click="handleResetForm" icon="reload" class="middle-button"
+                                    >重置</a-button
+                                >
+                            </span>
+                        </a-col>
+                    </a-row>
+                    <a-row :gutter="24" v-else>
+                        <a-col :md="6" :sm="6" :xxl="6">
+                            <a-form-item label="选择来源">
+                                <a-select v-decorator="['source_code']" mode="multiple" style="width: 100%;">
+                                    <a-select-option value="1">内部创意</a-select-option
+                                    ><a-select-option value="2">巨量创意</a-select-option
+                                    ><a-select-option value="3">开眼快创</a-select-option>
+                                </a-select>
+                            </a-form-item>
+                        </a-col>
+                        <a-col :md="6" :sm="6" :xxl="6">
+                            <a-form-item label="关键字">
+                                <a-input v-decorator="['search_word']" placeholder="请输入关键字" />
+                            </a-form-item>
+                        </a-col>
+                        <a-col :md="6" :sm="6" :xxl="6">
+                            <a-form-item label="时间选择">
+                                <a-range-picker
+                                    v-decorator="[
+                                        'timeRange',
+                                        { initialValue: [moment().subtract(1, 'months'), moment()] }
+                                    ]"
+                                    :ranges="dateRanges"
+                                    :disabled-date="disabledDateThen"
+                                />
+                            </a-form-item>
+                        </a-col>
+
+                        <a-col :md="6" :sm="6" :xxl="6">
+                            <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
+                                <a-button type="primary" icon="search" @click="handleQueryList">查询</a-button>
+                                <a-button type="primary" @click="handleResetForm" icon="reload" class="middle-button"
+                                    >重置</a-button
+                                >
+                                <a-button
+                                    type="primary"
+                                    @click="handleOkDownLoad"
+                                    class="middle-button"
+                                    :loading="downLoading"
+                                    :disabled="selectedRowKeys.length == 0"
+                                    >导出</a-button
+                                >
+                            </span>
+                        </a-col>
+                        <!-- <a-col :md="24" :sm="24" :xxl="24" v-if="config_id">
+                            <a-form-item label="脚本ID">
+                                <a-tag :key="config_id" closable @close="() => handleClose(config_id)">
+                                    {{ config_id }}
+                                </a-tag>
+                            </a-form-item>
+                        </a-col> -->
+                    </a-row>
+                </a-form>
+            </div>
+        </a-card>
+
+        <a-row style="margin-bottom:15px;margin-top:12px">
+            <a-col :span="24">
+                <div class="tableBody" style="min-height:200px;padding-bottom: 50px">
+                    <a-table
+                        :columns="columns"
+                        :dataSource="dataSource"
+                        :pagination="false"
+                        :loading="dataLoading"
+                        bordered
+                        size="middle"
+                        style="word-break: break-all;font-size:16px;font-weight:600"
+                        id="outTable"
+                        ref="accountTable"
+                        :customRow="rowClick"
+                        :rowSelection="tabKey == 1 ? null : { selectedRowKeys, onChange: onSelectChange }"
+                    >
+                        <span slot="query_word_lst" slot-scope="text, record">
+                            {{ text.join() }}
+                        </span>
+                        <span slot="script_num" slot-scope="text, record">
+                            {{ text ? text : '-' }}
+                        </span>
+                    </a-table>
+                    <a-pagination
+                        size="small"
+                        :showTotal="ipagination.showTotal"
+                        style="float: right;margin-top:10px"
+                        v-if="dataSource.length > 0"
+                        showQuickJumper
+                        show-size-changer
+                        :pageSize.sync="ipagination.pageSize"
+                        :total="ipagination.total"
+                        v-model="ipagination.current"
+                        @change="getDataSource"
+                        @showSizeChange="getDataSource"
+                    />
+                </div>
+            </a-col>
+        </a-row>
+        <a-modal
+            v-if="addScriptVisible"
+            title="新建脚本配置"
+            :visible="addScriptVisible"
+            dialog-class="web-url-modal"
+            @cancel="handleCancelAll"
+            @ok="handleBudgetSure"
+        >
+            <a-form-item label="关键字">
+                <a-select
+                    v-model="scriptLabel"
+                    :token-separators="[',', ' ', ',']"
+                    mode="tags"
+                    style="width: 320px"
+                    placeholder="按回车生成关键字"
+                    dropdownClassName="display-none-selset"
+                    @change="handleEnterChang"
+                >
+                </a-select>
+            </a-form-item>
+            <div class="adver-position-radio">
+                <div class="creative-label-content">
+                    <p>已选:{{ creativeTag.length || 0 }}</p>
+                    <div class="label-content-select-tag">
+                        <a-tag
+                            v-for="item in creativeTag"
+                            :key="item"
+                            :closable="true"
+                            class="tag-select-class"
+                            @close="handleTagsClose(item)"
+                        >
+                            {{ item }}
+                        </a-tag>
+                    </div>
+                </div>
+            </div>
+        </a-modal>
+    </div>
+</template>
+
+<script>
+import { TreeSelect } from 'ant-design-vue'
+const SHOW_PARENT = TreeSelect.SHOW_PARENT
+import ARow from 'ant-design-vue/es/grid/Row'
+import ACol from 'ant-design-vue/es/grid/Col'
+import moment from 'moment'
+import { getAction, postAction, downFile, downFilePost } from '@/api/manage'
+import checkBoxGroup from '@/components/formComponents/checkBoxGroup'
+import selectCheckAll from '@/views/modules/kuaishouapp/account/stepForm/stepModule/test'
+import qs from 'qs'
+import { mapGetters } from 'vuex'
+import selectTreeAccount from '@/components/formComponents/selectAccount.vue'
+function tqFun(qcArr1) {
+    var tempArr = []
+    function bbFun(qcArr) {
+        for (var i = 0; i < qcArr.length; i++) {
+            if (qcArr[i] instanceof Array) {
+                bbFun(qcArr[i])
+            } else {
+                tempArr.push(qcArr[i])
+            }
+        }
+        return tempArr
+    }
+    return bbFun(qcArr1)
+}
+let TTcolumns = [
+    {
+        title: '关键字',
+        dataIndex: 'query_word_lst',
+        scopedSlots: { customRender: 'query_word_lst' },
+        align: 'center',
+        key: 'query_word_lst',
+        width: 600
+    },
+    {
+        title: '创建时间',
+        dataIndex: 'create_time',
+        scopedSlots: { customRender: 'create_time' },
+        align: 'center',
+        key: 'create_time'
+    },
+    {
+        title: '创建人',
+        dataIndex: 'operator',
+        scopedSlots: { customRender: 'operator' },
+        align: 'center',
+        key: 'operator'
+    }
+]
+
+let KScolumns = [
+    {
+        title: '来源',
+        dataIndex: 'source_name',
+        scopedSlots: { customRender: 'source_name' },
+        align: 'center',
+        key: 'source_name'
+    },
+    {
+        title: '关键字',
+        dataIndex: 'query_word',
+        scopedSlots: { customRender: 'query_word' },
+        align: 'center',
+        key: 'query_word'
+    },
+    {
+        title: '时间',
+        dataIndex: 'stat_date',
+        scopedSlots: { customRender: 'stat_date' },
+        align: 'center',
+        key: 'stat_date'
+    },
+    {
+        title: '数据量级',
+        dataIndex: 'script_num',
+        scopedSlots: { customRender: 'script_num' },
+        align: 'center',
+        key: 'script_num'
+    },
+    {
+        title: '状态',
+        dataIndex: 'task_status',
+        scopedSlots: { customRender: 'task_status' },
+        align: 'center',
+        key: 'task_status'
+    }
+]
+
+export default {
+    components: {
+        ACol,
+        ARow,
+        checkBoxGroup,
+        selectCheckAll,
+        selectTreeAccount
+    },
+
+    data() {
+        return {
+            addScriptVisible: false,
+            scriptLabel: [],
+            creativeTag: [],
+            selectedRowKeys: [],
+            selectionRows: [],
+            downLoading: false,
+            config_id: null,
+            appIds: [],
+            appOptions: [],
+            materialVisible: false,
+            materialLoading: false,
+            scheduleTimeData: [{ scheduleTime: '' }],
+            indexAll: 0,
+            spinning: false,
+            form: this.$form.createForm(this),
+            priceForm: this.$form.createForm(this),
+            variableForm: this.$form.createForm(this),
+            variableLoading: false,
+            exportloading: false,
+            dateRange: [moment().subtract(1, 'weeks'), moment()],
+            noImg: require('@/assets/noImg.png'),
+            validationRules: {
+                bid: [
+                    {
+                        required: true,
+                        message: '出价信息必须填写'
+                        // validator: this.validateBid,
+                    }
+                ]
+            },
+            dateRanges: {
+                昨天: [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
+                近三天: [moment().subtract(2, 'days'), moment()],
+                近一周: [moment().subtract(6, 'days'), moment()],
+                近14天: [moment().subtract(13, 'days'), moment()],
+                近一月: [moment().subtract(1, 'months'), moment()]
+            },
+            rowClick: record => {
+                return {
+                    on: {
+                        click: () => {
+                            if (this.tabKey == 1) {
+                                this.tabKey = 2
+                                this.config_id = record.config_id
+                                this.tabChange(this.tabKey)
+                            }
+                        }
+                    }
+                }
+            },
+            ipagination: {
+                current: 1,
+                pageSize: 10,
+                //   pageSizeOptions: ['10', '20', '30'],
+                showTotal: (total, range) => {
+                    return range[0] + '-' + range[1] + ' 共' + total + '条'
+                },
+                showQuickJumper: true,
+                showSizeChanger: true,
+                pageSizeOptions: ['10', '30', '50'],
+                total: 0,
+                onChange: (current, pageSize) => {
+                    // 切换分页时的回调,
+                    // 当在页面定义change事件时,切记要把此处的事件清除,因为这两个事件重叠了,可能到时候会导致一些莫名的bug
+                    this.ipagination.current = current
+                    this.ipagination.pageSize = pageSize
+                }
+            },
+            value: 'valid',
+            KSaccountList: [],
+            TTaccountList: [],
+
+            KSdesignList: [],
+            TTdesignList: [],
+
+            operateDisabled: false,
+            duration: 1000,
+            //treeselect的参数
+            treeValue: [],
+            treeData: [],
+            SHOW_PARENT,
+
+            type: 3,
+            dateValue: [moment().subtract(7, 'days'), moment()],
+
+            operate: '',
+            designList: [],
+
+            tabKey: 1,
+
+            loading: false,
+            TTcolumns,
+            KScolumns,
+            columns: [...TTcolumns],
+            dataSource: [],
+
+            dataVideoList: [],
+            checkVideo: [],
+            checkPersonOne: '',
+            checkPersonElse: [],
+            sumContent: 0,
+            tableTab: 1,
+
+            newPlan: 0,
+            effectPlan: 0,
+
+            openOptions: false,
+
+            target: 'createTime',
+            order: 'descend',
+            projectId: undefined,
+            projectIdAll: undefined,
+            dataLoading: false,
+            url: process.env.VUE_APP_BASE_SCRIPT_URL + '/get_script_config_lst',
+            modifyPriceVisible: false,
+            modifyPriceLoading: false,
+            modifyPriceDetail: null,
+            accountVisible: false,
+            againLoading: false,
+            accountProjectDetail: null,
+            regionData: [{ label: '不限', value: 'unlimited' }],
+            ageData: [{ label: '不限', value: 'unlimited' }]
+        }
+    },
+    methods: {
+        moment,
+        ...mapGetters(['userInfo']),
+        handleOkDownLoad() {
+            if (this.selectionRows.length > 0) {
+                this.downLoading = true
+                let params = this.selectionRows.map(item => {
+                    return {
+                        source_code: item.source_name == '内部创意' ? 1 : item.source_name == '巨量创意' ? 2 : 3,
+                        query_word: item.query_word,
+                        stat_date: item.stat_date
+                    }
+                })
+
+                downFilePost(process.env.VUE_APP_BASE_SCRIPT_URL + '/export_script_file', params).then(res => {
+                    this.downLoading = false
+                    let blob = new Blob([res], {
+                        type: 'application/vnd.openxmlformats-officedocument.spre1adsheetml.sheet'
+                    })
+                    let downloadElement = document.createElement('a')
+                    let href = window.URL.createObjectURL(blob) //创建下载的链接
+                    downloadElement.href = href
+                    downloadElement.download = '脚本.xlsx' //下载后文件名
+                    document.body.appendChild(downloadElement)
+                    downloadElement.click() //点击下载
+                    document.body.removeChild(downloadElement) //下载完成移除元素
+                    window.URL.revokeObjectURL(href) //释放掉blob对象
+                })
+            } else {
+                this.$message.error('请选择导出的脚本')
+            }
+        },
+        disabledDateThen(current) {
+            // console.log(current)
+            return current && (current > moment() || current < moment().subtract(32, 'days'))
+        },
+        disabledDate(current) {
+            // console.log(current)
+            return current && current > moment()
+        },
+        newCreat(id) {
+            this.addScriptVisible = true
+        },
+        handleCancelAll() {
+            this.addScriptVisible = false
+            this.creativeTag = []
+            this.scriptLabel = []
+        },
+        handleEnterChang(value) {
+            this.creativeTag.push(...value)
+            this.creativeTag = [...new Set(this.creativeTag)]
+            if (this.creativeTag.length > 50) {
+                this.$message.error('视频脚本每次最多创建五十个,超过的已清除')
+                this.creativeTag.pop()
+            } else {
+                for (let i = 0; i < this.creativeTag.length; i++) {
+                    if (this.creativeTag[i].length > 10) {
+                        this.creativeTag.splice(i, 1)
+                        this.$message.error('视频脚本最多只能十个字符,超过的已清除')
+                    }
+                }
+            }
+
+            this.scriptLabel = []
+        },
+        handleBudgetSure() {
+            if (this.creativeTag.length == 0) {
+                this.$message.error('请输入关键字')
+            } else {
+                var params = {}
+                params.query_word_lst = this.creativeTag
+                params.operator = this.userInfo().realname
+                params.user_id = this.userInfo().id
+                this.postDataAction(process.env.VUE_APP_BASE_SCRIPT_URL + '/add_script_config', params).then(res => {
+                    if (res.success) {
+                        this.handleCancelAll()
+                        this.creativeTag = []
+                        this.scriptLabel = []
+                        const paramsData = this.form.getFieldsValue()
+                        this.handleGetTableList(paramsData)
+                    }
+                })
+            }
+        },
+        handleTagsClose(removedTag) {
+            const tags = this.creativeTag.filter(tag => tag !== removedTag)
+            this.creativeTag = tags
+        },
+        getData(className) {
+            return this.priceForm.getFieldValue(className)
+        },
+        getElseData(className) {
+            return this.variableForm.getFieldValue(className)
+        },
+        onSelectChange(selectedRowKeys, selectionRows) {
+            this.selectedRowKeys = selectedRowKeys
+            this.selectionRows = selectionRows
+        },
+        getDataSource(current, pageSize) {
+            console.log(pageSize)
+            // 切换分页时的回调,
+            // 当在页面定义change事件时,切记要把此处的事件清除,因为这两个事件重叠了,可能到时候会导致一些莫名的bug
+            this.$nextTick(() => {
+                this.ipagination.current = current
+                this.ipagination.pageSize = pageSize
+                this.selectedRowKeys = []
+                this.selectionRows = []
+                const paramsData = this.form.getFieldsValue()
+                this.handleGetTableList(paramsData)
+            })
+        },
+        handleQueryList(event) {
+            this.ipagination.current = 1
+            this.selectedRowKeys = []
+            this.selectionRows = []
+            event.preventDefault()
+            const paramsData = this.form.getFieldsValue()
+            this.handleGetTableList(paramsData)
+        },
+        handleClose() {
+            this.config_id = null
+            const paramsData = this.form.getFieldsValue()
+            this.handleGetTableList(paramsData)
+        },
+        handleResetForm() {
+            this.ipagination.current = 1
+            this.selectedRowKeys = []
+            this.selectionRows = []
+            this.form.resetFields()
+            if (this.tabKey == 1) {
+                this.projectId = undefined
+                this.projectIdAll = undefined
+            }
+            const paramsData = this.form.getFieldsValue()
+            this.handleGetTableList(paramsData)
+        },
+        handleGetTableList(data) {
+            let paramsData = {
+                ...data,
+                start_date:
+                    data.timeRange && data.timeRange.length === 2
+                        ? moment(data.timeRange[0]).format('YYYY-MM-DD')
+                        : null,
+                end_date:
+                    data.timeRange && data.timeRange.length === 2
+                        ? moment(data.timeRange[1]).format('YYYY-MM-DD')
+                        : null,
+                page_num: this.ipagination.current,
+                page_size: this.ipagination.pageSize
+                // userId: this.userInfo().id
+            }
+            if (this.tabKey == 2 && this.config_id) {
+                paramsData.config_id = this.config_id
+            }
+            this.dataSource = []
+            this.dataLoading = true
+            this.postDataAction(this.url, paramsData)
+                .then(result => {
+                    this.dataLoading = false
+                    if (result.success) {
+                        this.dataSource = result.result || []
+                        // if (result.result.total) {
+                        //     this.dataSource.unshift(result.result.total)
+                        // }
+
+                        this.ipagination.total = result.total_num || 0
+                        // result.result.total
+                    } else {
+                        this.$message.error(result.message)
+                    }
+                })
+                .catch(error => {
+                    this.dataLoading = false
+                    console.log(error, 'eeee')
+                })
+        },
+        getAccountNoProject() {
+            this.projectId = undefined
+            const paramsData = this.form.getFieldsValue()
+            this.handleGetTableList(paramsData)
+        },
+        dateChange(date, dateString) {
+            // console.log(date,dateString)
+        },
+
+        filterOption(input, option) {
+            // console.log(input, option)
+            return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+        },
+
+        // 快手头条的切换
+        tabChange(key) {
+            this.ipagination.current = 1
+            this.ipagination.pageSize = 10
+
+            this.columns = this.tabKey == 1 ? [...TTcolumns] : [...KScolumns]
+            this.url =
+                this.tabKey == 1
+                    ? process.env.VUE_APP_BASE_SCRIPT_URL + '/get_script_config_lst'
+                    : process.env.VUE_APP_BASE_SCRIPT_URL + '/get_query_word_task_info_lst'
+            if (this.tabKey == 1) {
+                this.config_id = null
+            }
+            this.selectedRowKeys = []
+            this.selectionRows = []
+            const paramsData = this.form.getFieldsValue()
+            this.handleGetTableList(paramsData)
+        },
+        operateChange(value) {
+            console.log(value)
+            if (value) {
+                this.accountDisabled = true
+                this.accountId = ''
+            } else {
+                this.accountDisabled = false
+            }
+        },
+
+        tableChange(pagination, filters, sorter, { currentDataSource }) {
+            console.log(pagination)
+            this.ipagination.current = pagination.current
+            this.ipagination.pageSize = pagination.pageSize
+            // if (sorter.order) {
+            //     this.order = sorter.order ? sorter.order : 'descend'
+            //     this.target = sorter.columnKey
+            // }
+            const paramsData = this.form.getFieldsValue()
+            this.handleGetTableList(paramsData)
+        },
+
+        // table区域的tab切换
+        tableTabChange(key) {
+            if (key == 1) {
+                this.columns = this.tabKey == 1 ? [...TTcolumns] : [...KScolumns]
+                this.target = 'new'
+            } else {
+                this.columns = this.tabKey == 1 ? [...TTcolumns] : [...KScolumns]
+                this.target = 'valid'
+            }
+        }
+    },
+    watch: {
+        dateValue(newName, oldName) {
+            this.search()
+        }
+    },
+    computed: {
+        newDate() {
+            var myDate = new Date()
+            myDate.getYear() //获取当前年份(2位)
+            var n = myDate.getFullYear() //获取完整的年份(4位,1970-????)
+            var m = myDate.getMonth() //获取当前月份(0-11,0代表1月)
+            var d = myDate.getDate() //获取当前日(1-31)
+            var day = myDate.getHours()
+            return day
+        }
+    },
+    mounted() {
+        const paramsData = this.form.getFieldsValue()
+        this.handleGetTableList(paramsData)
+    },
+    activated: function() {},
+
+    filters: {
+        toPercentage(val) {
+            if (typeof val != 'string') {
+                return (val * 100).toFixed(2) + '%'
+            } else {
+                return val
+            }
+        },
+        //保留两位小数并且变成货币格式
+        decimalsHandle(val) {
+            if (val && typeof val != 'string') {
+                if (val >= 0) {
+                    val = parseFloat(val).toFixed(2)
+                    let numberStr = val.toString()
+                    let str = numberStr.split('.')
+
+                    let str0 = str[0].split('').reverse()
+                    for (let i = 0; i < str0.length; i++) {
+                        if ((i + 1) % 4 === 0) {
+                            str0.splice(i, 0, ',')
+                        }
+                    }
+                    str0.reverse()
+                    let handleResult = ''
+                    for (let j = 0; j < str0.length; j++) {
+                        handleResult += str0[j]
+                    }
+
+                    return handleResult + '.' + str[1]
+                } else {
+                    val = parseFloat(val).toFixed(2)
+                    let numberStr = val.toString()
+                    let str = numberStr.split('.')
+
+                    let str0 = str[0]
+                        .substr(1)
+                        .split('')
+                        .reverse()
+                    for (let i = 0; i < str0.length; i++) {
+                        if ((i + 1) % 4 === 0) {
+                            str0.splice(i, 0, ',')
+                        }
+                    }
+                    str0.reverse()
+                    let handleResult = ''
+                    for (let j = 0; j < str0.length; j++) {
+                        handleResult += str0[j]
+                    }
+
+                    return '-' + handleResult + '.' + str[1]
+                }
+            } else if (typeof val == 'string') {
+                return val
+            } else {
+                return 0
+            }
+        },
+        //变成货币格式
+        formatCurrency(val) {
+            if (val) {
+                let numberStr = val.toString()
+                let str = numberStr.split('').reverse()
+                for (let i = 0; i < str.length; i++) {
+                    if ((i + 1) % 4 === 0) {
+                        str.splice(i, 0, ',')
+                    }
+                }
+                str.reverse()
+                let handleResult = ''
+                for (let j = 0; j < str.length; j++) {
+                    handleResult += str[j]
+                }
+                return handleResult
+            } else {
+                return '-'
+            }
+        }
+    }
+}
+</script>

+ 2 - 2
vue.config.js

@@ -108,7 +108,7 @@ module.exports = {
         // target: 'http://192.168.1.59:7001', //请求本地 需要jeecg-boot后台项目  赵西安
         // target: 'http://192.168.1.193:8080', //请求本地 需要jeecg-boot后台项目  李煜一
         // target: 'http://192.168.1.193:31012', //请求本地 需要jeecg-boot后台项目  李煜一
-        target: 'http://api.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目
+        // target: 'http://api.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目
         // target: 'https://trac.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目
         // target: 'http://39.106.184.70:8088/', //请求本地 需要jeecg-boot后台项目
         //  target: 'http://adsp.tjyourong.com.cn/', //请求本地 需要jeecg-boot后台项目
@@ -119,7 +119,7 @@ module.exports = {
         // target:'http://gateway.tjyourong.com.cn', //测试
         // target:'http://apipre.tjyourong.com.cn', //预生产
         // target: 'http://192.168.1.134:7001', //请求本地 需要jeecg-boot后台项目  周泽宇
-
+        target:'http://192.168.0.195:9999/',
         // target:'http://gateway.tjyourong.com.cn/',//测试
 
         ws: false,