Jelajahi Sumber

work 财务结算-账户列表 开发

jiayufei 3 tahun lalu
induk
melakukan
894e00fa54

+ 30 - 0
src/views/modules/settlement-information/settlement-information.less

@@ -20,4 +20,34 @@
             margin-right: 10px;
             margin-right: 10px;
         }
         }
     }
     }
+    .control-con-header {
+        margin-bottom: 20px;
+        position: relative;
+        .grid-form-options {
+            margin-top: 20px;
+            margin-bottom: 10px;
+        }
+        .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;
+    }
+}
+/deep/ .information-modal-class {
+    width: 700px !important;
+    .upload-txt-rules {
+        margin: 0;
+    }
 }
 }

+ 546 - 1
src/views/modules/settlement-information/settlement-information.vue

@@ -17,26 +17,571 @@
                 <span class="add-acount-policy-btn"><a-button type="primary" @click="handleUploadAccount">上传截图</a-button></span>
                 <span class="add-acount-policy-btn"><a-button type="primary" @click="handleUploadAccount">上传截图</a-button></span>
             </div>
             </div>
         </div>
         </div>
+        <div class="control-con-header">
+            <a-form
+                class="grid-form"
+                layout="inline"
+                :form="searchForm"
+                hide-required-mark
+            >
+                <a-row class="grid-form-options">
+                    <a-form-item
+                        class="grid-form-item"
+                        label="产品名称:"
+                        :colon="false"
+                    >
+                        <a-input v-model="configForm.creativeAdvance11" placeholder="请输入产品名称"/>
+                    </a-form-item>
+                    <a-form-item
+                        class="grid-form-item"
+                        label="项目名称:"
+                        :colon="false"
+                    >
+                        <a-input v-model="configForm.creativeAdvance22" placeholder="请输入项目名称"/>
+                    </a-form-item>
+                    <a-form-item
+                        class="grid-form-item"
+                        label="账户名称:"
+                        :colon="false"
+                    >
+                        <a-input v-model="configForm.creativeAdvance33" placeholder="请输入账户名称"/>
+                    </a-form-item>
+                    <a-form-item label="运营:">
+                        <a-select v-model="configForm.creativeSale" style="width: 100px">
+                            <a-select-option :value="2">不限</a-select-option>
+                            <a-select-option value="CREATIVE_IMAGE_MODE_VIDEO_VERTICAL">竖版视频</a-select-option>
+                            <a-select-option value="CREATIVE_IMAGE_MODE_LARGE">大图横图</a-select-option>
+                            <a-select-option value="CREATIVE_IMAGE_MODE_LARGE_VERTICAL">大图竖图</a-select-option>
+                            <a-select-option value="CREATIVE_IMAGE_MODE_UNION_SPLASH">开屏</a-select-option>
+                        </a-select>
+                    </a-form-item>
+                </a-row>
+                <a-row>
+                    <a-form-item label="负责人:">
+                        <a-select v-model="configForm.creativeMedia" style="width: 100px">
+                            <a-select-option :value="2">不限</a-select-option>
+                            <a-select-option value="CREATIVE_IMAGE_MODE_VIDEO_VERTICAL">快手</a-select-option>
+                            <a-select-option value="CREATIVE_IMAGE_MODE_LARGE">头条</a-select-option>
+                        </a-select>
+                    </a-form-item>
+                    <a-form-item
+                        class="grid-form-item"
+                        label="时间:"
+                        :colon="false"
+                    >
+                        <a-range-picker
+                            v-model="configForm.time"
+                            format="YYYY-MM-DD"
+                        />
+                    </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" @click="handleQueryList">搜索</a-button>
+                    </a-form-item>
+                </a-row>
+            </a-form>
+        </div>
+        <div class="control-con-table">
+            <a-table
+                ref="table"
+                size="middle"
+                bordered
+                :columns="settlementColumns"
+                :dataSource="dataSource"
+                :pagination="false"
+                :scroll="{x: 1300}"
+            >
+                <span slot="actions" slot-scope="text, record">
+                    <a @click="handleSettleDel(record)">删除</a>
+                    <a-divider type="vertical"/>
+                    <a>更多</a>
+                </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>
+        <!-- 上传截图 -->
+        <a-modal
+            v-if="policyOperationStatus"
+            title="账户上传"
+            :visible="policyOperationStatus"
+            dialog-class="information-modal-class"
+            @ok="handlePolicyOperationSure"
+            @cancel="handlePolicyOperationCancel"
+        >
+            <div>
+                <a-form-model
+                    class="policy-operation-form"
+                    ref="policyOperationForm"
+                    :model="policyOperationForm"
+                    :rules="policyOperationRules"
+                    :label-col="labelCol"
+                    :wrapper-col="wrapperCol"
+                >
+                    <a-form-model-item label="选择广告主公司名称" prop="name6">
+                        <a-select v-model="policyOperationForm.name6" placeholder="请选择广告主公司名称">
+                            <a-select-option :value="1">快手</a-select-option>
+                            <a-select-option :value="2">头条</a-select-option>
+                        </a-select>
+                    </a-form-model-item>
+                    <a-form-model-item label="选择产品名称" prop="name7">
+                        <a-select v-model="policyOperationForm.name7" placeholder="请选择产品名称">
+                            <a-select-option :value="1">快手</a-select-option>
+                            <a-select-option :value="2">头条</a-select-option>
+                        </a-select>
+                    </a-form-model-item>
+                    <a-form-model-item label="选择媒体">
+                        <a-radio-group v-model="policyOperationForm.name9" button-style="solid">
+                            <a-radio-button value="a">头条</a-radio-button>
+                            <a-radio-button value="b">快手</a-radio-button>
+                        </a-radio-group>
+                    </a-form-model-item>
+                    <a-form-model-item label="时间" prop="time">
+                        <a-month-picker
+                            v-model="policyOperationForm.time"
+                            format="YYYY-MM"
+                            placeholder="请选择时间"
+                            @change="handleLaunchData"
+                        />
+                    </a-form-model-item>
+                    <a-form-model-item label="附件上传">
+                        <a-upload
+                            name="file"
+                            :file-list="fileList"
+                            :before-upload="beforeUpload"
+                            :remove="handleFileRemove"
+                        >
+                            <a-button><a-icon type="upload"/>文件上传</a-button>
+                        </a-upload>
+                        <p class="upload-txt-rules">1、支持扩展名:.jpg</p>
+                        <p>2、上传图片名称账户ID,若有多个图片则账户ID-1、账户ID-2</p>
+                    </a-form-model-item>
+                </a-form-model>
+            </div>
+        </a-modal>
+        <!-- 下载结算单 -->
+        <a-modal
+            v-if="settlementModalStatus"
+            title="下载结算单"
+            :visible="settlementModalStatus"
+            dialog-class="information-modal-class"
+            @ok="handleSettlementModalSure"
+            @cancel="handleSettlementModalnCancel"
+        >
+            <div>
+                <a-form-model
+                    class="policy-operation-form"
+                    ref="settlementModalForm"
+                    :model="settlementModalForm"
+                    :rules="settlementModalRules"
+                    :label-col="labelCol"
+                    :wrapper-col="wrapperCol"
+                >
+                    <a-form-model-item label="选择广告主公司名称" prop="name6">
+                        <a-select v-model="settlementModalForm.name6" placeholder="请选择广告主公司名称">
+                            <a-select-option :value="1">快手</a-select-option>
+                            <a-select-option :value="2">头条</a-select-option>
+                        </a-select>
+                    </a-form-model-item>
+                    <a-form-model-item label="选择产品名称" prop="name7">
+                        <a-select v-model="settlementModalForm.name7" placeholder="请选择产品名称">
+                            <a-select-option :value="1">快手</a-select-option>
+                            <a-select-option :value="2">头条</a-select-option>
+                        </a-select>
+                    </a-form-model-item>
+                    <a-form-model-item label="选择媒体">
+                        <a-radio-group v-model="settlementModalForm.name9" button-style="solid">
+                            <a-radio-button value="a">头条</a-radio-button>
+                            <a-radio-button value="b">快手</a-radio-button>
+                        </a-radio-group>
+                    </a-form-model-item>
+                    <a-form-model-item label="时间" prop="time">
+                        <a-month-picker
+                            v-model="settlementModalForm.time"
+                            format="YYYY-MM"
+                            placeholder="请选择时间"
+                            @change="handleLaunchData"
+                        />
+                    </a-form-model-item>
+                    <a-form-model-item label="账户数量">
+                        <span>23</span>
+                    </a-form-model-item>
+                    <a-form-model-item label="截图已上传">
+                        <span>20</span>
+                    </a-form-model-item>
+                </a-form-model>
+            </div>
+        </a-modal>
+        <!-- 下载利润表 -->
+        <a-modal
+            v-if="profitModalStatus"
+            title="下载利润单"
+            :visible="profitModalStatus"
+            dialog-class="information-modal-class"
+            @ok="handleProfitModalSure"
+            @cancel="handleProfitModalnCancel"
+        >
+            <div>
+                 <a-form-model
+                    class="policy-operation-form"
+                    ref="profitModalForm"
+                    :model="profitModalForm"
+                    :rules="profitModalRules"
+                    :label-col="labelCol"
+                    :wrapper-col="wrapperCol"
+                >
+                    <a-form-model-item label="选择媒体">
+                        <a-radio-group v-model="profitModalForm.name9" button-style="solid">
+                            <a-radio-button value="a">头条</a-radio-button>
+                            <a-radio-button value="b">快手</a-radio-button>
+                        </a-radio-group>
+                    </a-form-model-item>
+                    <a-form-model-item label="时间" prop="launchDateRange">
+                        <a-range-picker
+                            v-model="profitModalForm.launchDateRange"
+                            format="YYYY-MM-DD"
+                            @change="handleLaunchDateRange"
+                        />
+                    </a-form-model-item>
+                </a-form-model>
+            </div>
+        </a-modal>
     </div>
     </div>
 </template>
 </template>
 <script>
 <script>
+import moment from 'moment';
+
+import BMF from 'browser-md5-file';
+let COS = require('cos-js-sdk-v5');
+let cos = new COS({
+    SecretId: 'AKIDE6IpMi8fJQRCg1iuWzFajjRs43kbbets',
+    SecretKey: 'tXzuwMfplTTK3c9GFUyETilasvQfePu9'
+});
+
 export default {
 export default {
     name: 'settlement-information',
     name: 'settlement-information',
     data() {
     data() {
-        return {};
+        return {
+            profitModalForm: {
+                name9: 'a',
+                launchDateRange: []
+            },
+            profitModalRules: {
+                launchDateRange: [{required: true, message: '请选择时间', trigger: 'change'}]
+            },
+            profitModalStatus: false,
+            settlementModalStatus: false,
+            fileList: [],
+            labelCol: {span: 7},
+            wrapperCol: {span: 14},
+            settlementModalForm: {
+                name6: undefined,
+                name7: undefined,
+                name8: undefined,
+                name9: 'a',
+                name10: 'a',
+                time: ''
+            },
+            settlementModalRules: {
+                name6: [{required: true, message: '请选择广告主公司名称', trigger: 'change'}],
+                name7: [{required: true, message: '请选择产品名称', trigger: 'change'}],
+                name8: [{required: true, message: '请选择项目名称', trigger: 'change'}],
+                time: [{required: true, message: '请选择时间', trigger: 'change'}],
+            },
+            policyOperationForm: {
+                name6: undefined,
+                name7: undefined,
+                name8: undefined,
+                name9: 'a',
+                name10: 'a',
+                time: ''
+            },
+            policyOperationRules: {
+                name6: [{required: true, message: '请选择广告主公司名称', trigger: 'change'}],
+                name7: [{required: true, message: '请选择产品名称', trigger: 'change'}],
+                name8: [{required: true, message: '请选择项目名称', trigger: 'change'}],
+                time: [{required: true, message: '请选择时间', trigger: 'change'}],
+            },
+            policyOperationStatus: false,
+            tablePag: {
+                page: 1, 
+                size: 10
+            },
+            totalAll: 100,
+            dataSource: [
+                {
+                    name1: '腾讯科技有限公司', 
+                    name2: '腾讯科技有限公司', 
+                    name3: '产品名称', 
+                    name4: '快手', 
+                    name5: '何甜甜', 
+                    name6: '待审核', 
+                    name7: '是'
+                }
+            ],
+            settlementColumns: [
+                {
+                    title: '广告主主体名称',
+                    align: 'center',
+                    dataIndex: 'name1',
+                    width: 180
+                },
+                {
+                    title: '产品名称',
+                    align: 'center',
+                    dataIndex: 'name2',
+                    width: 180
+                },
+                {
+                    title: '媒体',
+                    align: 'center',
+                    dataIndex: 'name3',
+                    width: 150
+                },
+                {
+                    title: '上传人',
+                    align: 'center',
+                    dataIndex: 'name4',
+                    width: 150
+                },
+                {
+                    title: '账户数量',
+                    dataIndex: 'name5',
+                    align: 'center',
+                    width: 150
+                },
+                {
+                    title: '上传数量',
+                    dataIndex: 'name6',
+                    align: 'center',
+                    width: 150
+                },
+                {
+                    title: '上传时间',
+                    align: 'center',
+                    dataIndex: 'name7',
+                    width: 150
+                },
+                {
+                    title: '操作',
+                    align: 'center',
+                    dataIndex: 'actions',
+                    width: 250,
+                    fixed: 'right',
+                    scopedSlots: {customRender: 'actions'}
+                }
+            ],
+            configForm: {
+                creativeAdvance: '',
+                creativeAdvance11: '',
+                creativeAdvance22: '',
+                creativeAdvance33: '',
+                creativeSale: 2,
+                creativeMedia: 2,
+                time: []
+            }
+        };
+    },
+    created() {
+        this.searchForm = this.$form.createForm(this);
     },
     },
     methods: {
     methods: {
+        moment,
+        handleLaunchDateRange(date, dateString) {
+            this.profitModalForm.launchDateRange = dateString;
+        },
+        handleProfitModalSure() {
+            console.log(this.profitModalForm, '下载利润表确认按钮');
+            this.$refs.profitModalForm.validate(valid => {
+                if (valid) {
+                    console.log('条件完全');
+                }
+                else {
+                    console.log('error submit!!');
+                    return false;
+                }
+            });
+        },
+        handleProfitModalnCancel() {
+            this.profitModalStatus = false;
+        },
+        handleSettlementModalSure() {
+            console.log(this.settlementModalForm, '下载结算单确定按钮');
+            this.$refs.settlementModalForm.validate(valid => {
+                if (valid) {
+                    console.log('条件完全');
+                }
+                else {
+                    console.log('error submit!!');
+                    return false;
+                }
+            });
+        },
+        handleSettlementModalnCancel() {
+            console.log('下载结算单取消按钮');
+            this.settlementModalStatus = false;
+        },
+        // 月份时间选择器
+        handleLaunchData(date, dateString) {
+            this.policyOperationForm.time = dateString;
+        },
+        // 查询的按钮
+        handleQueryList() {
+            console.log(this.configForm, '搜索的按钮');
+        },
+        // 重置的按钮
+        handleResetList() {
+            console.log(this.configForm, '重置的按钮');
+        },
+        handleFileRemove(file) {
+            console.log(file, this.fileList, '-----');
+            let formData = this.fileList;
+            this.fileList= formData.filter(item => file.uid !== item.uid);
+        },
+        beforeUpload(file) {
+            this.cosUpload(file);
+        },
+        handleMd5(file) {
+            let bmf = new BMF();
+            let that = this;
+            return new Promise(function (resolve, reject) {
+                bmf.md5(file, (err, md5) => {
+                    getAction('kuaishouPopulationPackage/checkPopulationPackage', {signature: md5}).then(result => {
+                        if (result.code === 200) {
+                            that.personNameDisabled = false;
+                            that.personResourceDisabled = false;
+                            resolve();
+                        }
+                        else if (result.code === 201) {
+                            that.$message.error(result.message);
+                            that.personForm.name = result.result.orientationName;
+                            that.personForm.resource = result.result.type;
+                            that.personNameDisabled = true;
+                            that.personResourceDisabled = true;
+                            reject();
+                        }
+                    }).catch(error => {
+                        console.log(error, 'eeee');
+                        reject();
+                    });
+                });
+            });
+        },
+        cosUpload(file) {
+            let that = this;
+            let date = new Date();
+            let y = date.getFullYear();
+            let MM = date.getMonth() + 1;
+            MM = MM < 10 ? '0' + MM : MM;
+            let d = date.getDate();
+            d = d < 10 ? '0' + d : d;
+            let timeElse = new Date().getTime();
+            let arr = file.name.split('.');
+            let str = '';
+            for (let i = 0; i < arr.length; i++) {
+                if (i === arr.length - 1) {
+                }
+                else {
+                    if (i === arr.length - 2) {
+                        str += arr[i];
+                    }
+                    else {
+                        str += arr[i] + '.';
+                    }
+                }
+            }
+            cos.putObject(
+                {
+                    Bucket: 'media-1301855440',
+                    Region: 'ap-chongqing',
+                    // 存储桶所在地域,必须字段
+                    Key: that.uploadType + '/' + y + '-' + MM + '-' + d + '/' + str + '-' + timeElse + '.' + arr[arr.length - 1],
+                    StorageClass: 'STANDARD',
+                    Body: file // 上传文件对象
+                },
+                function (err, data) {
+                    if (err) {
+                        that.$message.error('上传失败!!!' + err);
+                        return;
+                    }
+                    that.loadingElse = false;
+                    that.fileList.push({
+                        uid: file.name,
+                        name: file.name,
+                        status: 'done',
+                        url: '//' + data.Location
+                    });
+                    const isZip = file.type.includes('png') || file.type.includes('jpeg');
+                    if (!isZip) {
+                        that.$message.error('请上传正确的图片');
+                        return;
+                    }
+                    // that.handleMd5(file);
+                }
+            );
+        },
+        // 上传确定按钮操作
+        handlePolicyOperationSure() {
+            console.log(this.policyOperationForm, '上传确定按钮操作');
+            if (!this.fileList.length) {
+                this.$message.error('请上传附件');
+                return;
+            }
+            this.$refs.policyOperationForm.validate(valid => {
+                if (valid) {
+                    console.log('条件完全');
+                }
+                else {
+                    console.log('error submit!!');
+                    return false;
+                }
+            });
+        },
+        // 上传取消按钮操作
+        handlePolicyOperationCancel() {
+            console.log('上传取消按钮操作');
+            this.policyOperationStatus = false;
+        },
+        // 分页操作按钮
+        onShowSizeChange(current, pageSize) {
+            this.tablePag = {
+                page: current,
+                size: pageSize
+            };
+            // this.handleInitTable();
+        },
+        // 删除操作
+        handleSettleDel(list) {
+            console.log(list, '删除操作');
+            let that = this;
+            this.$confirm({
+                title: '提示',
+                content: '确认删除该条数据',
+                onOk() {}
+            });
+        },
         // 下载利润单
         // 下载利润单
         handleDownloadProfit() {
         handleDownloadProfit() {
             console.log('下载利润单');
             console.log('下载利润单');
+            this.profitModalStatus = true;
         },
         },
         // 下载结算单
         // 下载结算单
         handleDownloadSettlement() {
         handleDownloadSettlement() {
             console.log('下载结算单');
             console.log('下载结算单');
+            this.settlementModalStatus = true;
         },
         },
         // 上传截图
         // 上传截图
         handleUploadAccount() {
         handleUploadAccount() {
             console.log('上传截图');
             console.log('上传截图');
+            this.policyOperationStatus = true;
         }
         }
     }
     }
 }
 }