zhangyanpeng
2024-08-03 d8e78fa8610d65f6bfa23e0dd7070672f41ba3e4
调整
15个文件已修改
1个文件已添加
1157 ■■■■■ 已修改文件
js/common.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
js/foundation.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
js/myelement.js 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/flow/page/flow_inventory_list.html 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/flow/page/flow_sales_list.html 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/md/page/customer/page/customer_basic.html 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/md/page/customer/page/customer_list_authorization.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/md/page/framework/page/territory_list.html 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/md/page/terminal/page/hospital_list_warehouse.html 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/system/page/home/page/home_sale.html 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/target/page/customer_target_list.html 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/target/page/terminal_target_list.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/visit/page/popup/popup_alert.html 225 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/visit/page/process_definition.html 117 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/visit/page/visit_log_list.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
module/visit/page/visit_schedule_list.html 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
js/common.js
@@ -292,7 +292,8 @@
    if (ocrtype == "bizLicense") {//营业执照
        
    }
    var url_ = baseUrl +'root/ocr/' + ocrtype + "?token=" + Root.getToken();
    // var url_ = baseUrl +'root/ocr/' + ocrtype + "?token=" + Root.getToken();
    var url_ = baseUrl +'starwaytestroot/ocr/' + ocrtype + "?token=" + Root.getToken();
    
    uploadAxios.post(url_, formData).then(data_ => {
        // vue.$message({
js/foundation.js
@@ -855,6 +855,9 @@
        itemMap.formatter_percent = formatter_percent;
        itemMap.formatter_split = formatter_split;
        itemMap.formatter_password = formatter_password;
        itemMap.formatter_replace = formatter_replace;
        itemMap.formatter_replace = formatter_replace;
        itemMap.formatter_replace_val = formatter_replace_val;
        
        
        itemMap.prefixorunit = formatter_prefixorunit;
@@ -1886,6 +1889,25 @@
    }
    return cellValue;
};
// //拼接的字段格式 format = "#{name}-{name}%"
function formatter_replace(row, column, cellValue, index, format) {
    // 未完成
    // if (cellValue) {
    //     return toPercent(cellValue, digit);
    // }
    return cellValue;
};
// 替换
function formatter_replace(row, column, cellValue, index, replacefield) {
    return row[replacefield];
};
// 有值替换 cellValue 有值才替换
function formatter_replace_val(row, column, cellValue, index, replacefield) {
    if (cellValue) {
        return row[replacefield]
    }
    return cellValue;
};
////////////////非通用的格式化////////////////
function formatter_earlyWarning(row, column, cellValue, index) {
js/myelement.js
@@ -153,6 +153,8 @@
formatter_percent = window.top.formatter_percent;
formatter_password = window.top.formatter_password;
formatter_split = window.top.formatter_split;
formatter_replace = window.top.formatter_replace;
formatter_replace_val = window.top.formatter_replace_val;
formatter_prefixorunit = window.top.formatter_prefixorunit;
formatter_earlyWarning = window.top.formatter_earlyWarning;
@@ -1167,9 +1169,10 @@
                    ' </template> '+
                    
                    ' <template v-else-if="tableField.type == \'icon\'"> '+
                        ' <i v-if="scope.row[tableField.field] && scope.row[tableField.field] != \'0\' && tableFieldClick[tableField.field] && tableFieldClick[tableField.field].val.onclick" :class="[tableField.icon, \'h_cellclick\']" '+
                        ' <i v-if="scope.row[tableField.field] && scope.row[tableField.field] != \'0\' && tableFieldClick[tableField.field] && tableFieldClick[tableField.field].val.onclick" '+
                        ' :class="[(tableFieldClick[tableField.field] && tableFieldClick[tableField.field].val) ? tableFieldClick[tableField.field].val.icon : \'\', \'h_cellclick\']" :style="{color: (tableFieldClick[tableField.field] && tableFieldClick[tableField.field].val) ? tableFieldClick[tableField.field].val.iconcolor : \'#000\'}"'+
                        ' @click.stop="cellValClick(scope.row, tableField, scope.row[tableField.field], \'valclick\')"></i> '+
                        ' <i v-else-if="scope.row[tableField.field] && scope.row[tableField.field] != \'0\'" :class="[tableField.icon, \'h_cellclick\']" ></i> '+
                        ' <i v-else-if="scope.row[tableField.field] && scope.row[tableField.field] != \'0\'" :class="[(tableFieldClick[tableField.field] && tableFieldClick[tableField.field].val) ? tableFieldClick[tableField.field].val.icon : \'\']" :style="{color: (tableFieldClick[tableField.field] && tableFieldClick[tableField.field].val) ? tableFieldClick[tableField.field].val.iconcolor : \'#000\'}"></i> '+
                        
                        ' <i v-else-if="!scope.row[tableField.field] && tableField.nullicon" :class="[tableField.nullicon]" ></i> '+
                        //' <i v-else></i> '+
@@ -1217,6 +1220,15 @@
                        //无点击
                        ' <el-tag v-else size="small" :type="(tableField.tagtype && tableField.tagtype[scope.row[tableField.field]]) ? tableField.tagtype[scope.row[tableField.field]] : \'\'">{{tableFieldClick[tableField.field].defaultval.val}}</el-tag>'+
                    ' </template> '+
                ' </template> '+
                ' <template v-else-if="tableField.type == \'icon\'"> '+
                    ' <i v-if="scope.row[tableField.field] && scope.row[tableField.field] != \'0\' && tableFieldClick[tableField.field] && tableFieldClick[tableField.field].val.onclick" '+
                    ' :class="[(tableFieldClick[tableField.field] && tableFieldClick[tableField.field].val) ? tableFieldClick[tableField.field].val.icon : \'\']" :style="{color: (tableFieldClick[tableField.field] && tableFieldClick[tableField.field].val) ? tableFieldClick[tableField.field].val.iconcolor : \'#000\', \'font-size\': \'24px\'}"'+
                    ' @click.stop="cellValClick(scope.row, tableField, scope.row[tableField.field], \'valclick\')"></i> '+
                    ' <i v-else-if="scope.row[tableField.field] && scope.row[tableField.field] != \'0\'" :class="[(tableFieldClick[tableField.field] && tableFieldClick[tableField.field].val) ? tableFieldClick[tableField.field].val.icon : \'\']" :style="{color: (tableFieldClick[tableField.field] && tableFieldClick[tableField.field].val) ? tableFieldClick[tableField.field].val.iconcolor : \'#000\', \'font-size\': \'24px\'}"></i> '+
                    ' <i v-else-if="!scope.row[tableField.field] && tableField.nullicon" :class="[tableField.nullicon]" ></i> '+
                    //' <i v-else></i> '+
                ' </template> '+
                //如果没有tableField.type并且有值
                ' <template v-else-if="scope.row[tableField.field] || scope.row[tableField.field] === 0 || scope.row[tableField.field] === false"> '+
@@ -3546,12 +3558,17 @@
                else if(e.formatter == "formatter_password") {
                    e.formatter_f = function(a,b,c,d) {return formatter_password(a,b,c,d)}
                }
                else if(e.formatter == "formatter_earlyWarning") {
                    e.formatter_f = function(a,b,c,d) {return formatter_earlyWarning(a,b,c,d)}
                }
                else if(e.formatter == "formatter_replace") {
                    var format = e.formatpattern;//替换的字段格式
                    e.formatter_f = function(a,b,c,d) {return formatter_replace(a,b,c,d, format)}
                }
                else if(e.formatter == "formatter_replace_val") {
                    var format = e.formatpattern;//替换的字段格式,有值才替换
                    e.formatter_f = function(a,b,c,d) {return formatter_replace_val(a,b,c,d, format)}
                }
                
            }
            
@@ -6340,6 +6357,14 @@
                            var unit = e.suffix;//后缀或单位
                            this.formDataFace[prop] = formatter_prefixorunit(null, null, value, null, prefix, unit);
                        }
                        else if(e.formatter == "formatter_replace") {
                            var format = e.formatpattern;//拼接的字段格式 format = "#{name}-{name}%"
                            this.formDataFace[prop] = formatter_replace(this.formData, null, value, null, format);
                        }
                        else if(e.formatter == "formatter_replace_val") {
                            var format = e.formatpattern;//替换的字段格式,有值才替换
                            this.formDataFace[prop] = formatter_replace_val(this.formData, null, value, null, format);
                        }
                        
                    }
                    
@@ -6444,6 +6469,14 @@
                        var prefix = e.prefix;//前缀
                        var unit = e.suffix;//后缀或单位
                        this.formDataFace[prop] = formatter_prefixorunit(null, null, value, null, prefix, unit);
                    }
                    else if(e.formatter == "formatter_replace") {
                        var format = e.formatpattern;//拼接的字段格式 format = "#{name}-{name}%"
                        this.formDataFace[prop] = formatter_replace(this.formData, null, value, null, format);
                    }
                    else if(e.formatter == "formatter_replace_val") {
                        var format = e.formatpattern;//替换的字段格式,有值才替换
                        this.formDataFace[prop] = formatter_replace_val(this.formData, null, value, null, format);
                    }
                    
                }
@@ -7649,6 +7682,14 @@
                            var unit = e.suffix;//后缀或单位
                            this.formDataFace[prop] = formatter_prefixorunit(null, null, value, null, prefix, unit);
                        }
                        else if(e.formatter == "formatter_replace") {
                            var format = e.formatpattern;//替换的字段格式
                            this.formDataFace[prop] = formatter_replace(this.formData, null, value, null, format);
                        }
                        else if(e.formatter == "formatter_replace_val") {
                            var format = e.formatpattern;//替换的字段格式,有值才替换
                            this.formDataFace[prop] = formatter_replace_val(this.formData, null, value, null, format);
                        }
                        
                    }
                    
module/flow/page/flow_inventory_list.html
@@ -18,8 +18,8 @@
                        title: "库存流向",
                        //Tab项设置
                        tabs_d: [
                            {code: "month", name: "月流向", dataname: "flow_daily_sell", filterTxt: "", orderby: ""},
                            {code: "daily", name: "日流向", dataname: "flow_month_sell", filterTxt: "", orderby: ""},
                            {code: "month", name: "月流向", dataname: "flow_month_inv", filterTxt: "", orderby: ""},
                            {code: "daily", name: "日流向", dataname: "flow_daily_inv", filterTxt: "", orderby: ""},
                        ],
                        d_tabs: {
                            month: true,
@@ -41,6 +41,21 @@
                            {isshow: "T", field: "org_code", name: "经销商编码", filterfield:"", filteroperator: "like", type: ""},
                            {isshow: "T", field: "org_name", name: "经销商名称", filterfield:"", filteroperator: "like", type: ""},
                        ],
                        default_filterObj: {
                            month: {
                                dataversion: "月度初版"
                                //year: new Date().getFullYear().toString(),
                                //month: (new Date().getMonth() + 1).toString(),
                                // month: dateFormat(new Date(), "yyyy-MM"),
                                //month: new Date().getFullYear() + "-" + new Date().getMonth()+1,
                                // dataversion: "1"
                            },
                            daily: {
                                //year: new Date().getFullYear().toString(),
                                //month: (new Date().getMonth()+1).toString(),
                                // month: dateFormat(new Date(), "yyyy-MM"),
                            },
                        },
                        
                        cbuttons_r: {},
                        ctabs_r: {},
@@ -50,8 +65,14 @@
                        isSales: false,//销售人员(销售代表、大区经理、小区经理)
                        isRegionR: false,//大区经理
                        saveUser: null,//登录者id
                        newdate_month: "",
                        newdate_day: "",
                    },
                    created() {
                        this.newdate_month = dateFormat(new Date(), "yyyy年MM月")
                        this.newdate_day = dateFormat(new Date(), "yyyy年MM月dd日")
                        if (window.top.vue.userinfo) {
                            this.saveUser = window.top.vue.userinfo.id;
                            if (window.top.vue.userinfo.currentactor.code == "Capacity-Sale" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-R" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-M") {
@@ -176,6 +197,8 @@
                                    if (!me.selectTabObj.filterFields || (me.selectTabObj.filterFields && me.selectTabObj.filterFields.length == 0)) {
                                        me.selectTabObj.filterFields = clone(filterFields_);
                                        me.selectTabObj.tableFields = clone(tableFields_);
                                        me.selectTabObj.filterObj = clone(me.default_filterObj[me.selectTabObj.code])
                                        
                                        //字段数组转字段obj,目的为了筛选时获取字段属性
                                        me.fieldsToFieldsObj();
@@ -988,65 +1011,34 @@
        <div v-cloak id="vbody">
            <div id="page_root">
                <div class="topbar">
                    <span>{{title}}</span>
                    <span  style="float: left;">{{title}}</span>
                    <div style="float: right;">
                        <el-button-group style="margin-left: 3px">
                            <el-button v-show="cbuttons_r.linkpharmacy" @click="onShowLinkPharmacy">关联院外店</el-button>
                            <el-button v-show="cbuttons_r.downloadTemplate" @click="DownloadTemplate">模板下载</el-button>
                            <el-tooltip class="item" effect="dark" :content="buttonsconfig.clearandappend.tooltip" placement="top-start">
                                <el-button v-show="cbuttons_r.import" @click="onPopupByUploadFile":icon="buttonsconfig.clearandappend.icon">{{buttonsconfig.clearandappend.name}}</el-button>
                            </el-tooltip>
                            <el-button v-show="cbuttons_r.export" type="primary" @click="onDownload" :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
                        </el-button-group>
                        <!-- <el-button
                            v-show="cbuttons_r.Add && selectTabObj.code == 'hospital'" @click="addData":icon="buttonsconfig.add.icon">{{buttonsconfig.add.name}}
                        </el-button>
                        <el-button
                            v-show="cbuttons_r.Add && selectTabObj.code == 'hospital'"
                            :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
                            @click="onEditDataChange" :icon="buttonsconfig.change.icon">变更
                        </el-button>
                        <el-button
                            v-show="cbuttons_r.Auth && selectTabObj.code == 'hospital'"
                            :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
                            @click="onAuthorize('add')" :icon="buttonsconfig.authorize.icon">新增授权
                        </el-button>
                        <el-button-group v-show="selectTabObj.code == 'authorize'" style="margin-left: 3px;">
                            <el-button
                                v-show="cbuttons_r.Auth"
                                @click="onAuthorize('add')" :icon="buttonsconfig.authorize.icon">新增授权
                            </el-button>
                            <el-button
                                v-show="cbuttons_r.Auth"
                                :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
                                @click="onAuthorize('change')" :icon="buttonsconfig.authorize.icon">变更授权
                            </el-button>
                            <el-button
                                v-show="cbuttons_r.Auth"
                                :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
                                type="danger"
                                @click="onAuthorize('delete')" :icon="buttonsconfig.authorize.icon">取消授权
                            </el-button>
                    <div style="float: right; margin-right: 18px;">
                        <el-button-group
                            v-if="selectTabObj && selectTabObj.code == 'month' && selectTabObj.filterObj.dataversion == '月度初版'"
                            style="margin-left: 3px;">
                            <el-button :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.biz_date)"
                                type="primary" @click="onAddSS" :icon="buttonsconfig.add.icon">申诉</el-button>
                        </el-button-group>
                        <el-button-group v-show="selectTabObj.code == 'infoAll'" style="margin-left: 3px;">
                            <el-button
                                v-show="cbuttons_r.Add"
                                :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Rejected' || selectTabObj.selectedrow.state_code == 'Input') && selectTabObj.selectedrow.create_id == saveUser)"
                                @click="reEditInfo" :icon="buttonsconfig.edit.icon">编辑
                            </el-button>
                        <el-button-group style="margin-left: 3px;">
                            <el-button type="primary" @click=""
                                :icon="buttonsconfig.import.icon">{{buttonsconfig.import.name}}</el-button>
                            <el-button type="primary" @click=""
                                :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
                        </el-button-group>
                    </div>
                        <el-button-group v-show="selectTabObj.code == 'authAll'" style="margin-left: 3px;">
                            <el-button
                                v-show="cbuttons_r.Auth"
                                :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Rejected' || selectTabObj.selectedrow.state_code == 'Input') && selectTabObj.selectedrow.create_id == saveUser)"
                                @click="reEditAuth" :icon="buttonsconfig.edit.icon">编辑
                            </el-button>
                        </el-button-group> -->
                    <div style="float: left; margin-left: 20%;">
                        <span>报告日期:</span>
                        <span v-if="selectTabObj && selectTabObj.code == 'month'">{{newdate_month}}</span>
                        <span v-if="selectTabObj && selectTabObj.code == 'daily'">{{newdate_day}}</span>
                        <el-radio-group style="margin-left: 10px;"
                            v-if="selectTabObj && selectTabObj.filterObj && selectTabObj.code=='month'"
                            v-model="selectTabObj.filterObj.dataversion" size="mini" fill="#4cb108">
                            <el-radio-button label="月度初版">初版</el-radio-button>
                            <el-radio-button label="月度终版">终版</el-radio-button>
                        </el-radio-group>
                    </div>
                </div>
module/flow/page/flow_sales_list.html
@@ -18,8 +18,8 @@
                        title: "销售流向",
                        //Tab项设置
                        tabs_d: [
                            {code: "month", name: "月流向", dataname: "flow_daily_sell", filterTxt: "", orderby: ""},
                            {code: "daily", name: "日流向", dataname: "flow_month_sell", filterTxt: "", orderby: ""},
                            {code: "month", name: "月流向", dataname: "flow_month_sell", filterTxt: "", orderby: ""},
                            {code: "daily", name: "日流向", dataname: "flow_daily_sell", filterTxt: "", orderby: ""},
                        ],
                        d_tabs: {
                            month: true,
@@ -41,6 +41,21 @@
                            {isshow: "T", field: "org_code", name: "经销商编码", filterfield:"", filteroperator: "like", type: ""},
                            {isshow: "T", field: "org_name", name: "经销商名称", filterfield:"", filteroperator: "like", type: ""},
                        ],
                        default_filterObj: {
                            month: {
                                dataversion: "月度初版"
                                //year: new Date().getFullYear().toString(),
                                //month: (new Date().getMonth() + 1).toString(),
                                // month: dateFormat(new Date(), "yyyy-MM"),
                                //month: new Date().getFullYear() + "-" + new Date().getMonth()+1,
                                // dataversion: "1"
                            },
                            daily: {
                                //year: new Date().getFullYear().toString(),
                                //month: (new Date().getMonth()+1).toString(),
                                // month: dateFormat(new Date(), "yyyy-MM"),
                            },
                        },
                        
                        cbuttons_r: {},
                        ctabs_r: {},
@@ -50,8 +65,14 @@
                        isSales: false,//销售人员(销售代表、大区经理、小区经理)
                        isRegionR: false,//大区经理
                        saveUser: null,//登录者id
                        newdate_month: "",
                        newdate_day: "",
                    },
                    created() {
                        this.newdate_month = dateFormat(new Date(), "yyyy年MM月")
                        this.newdate_day = dateFormat(new Date(), "yyyy年MM月dd日")
                        if (window.top.vue.userinfo) {
                            this.saveUser = window.top.vue.userinfo.id;
                            if (window.top.vue.userinfo.currentactor.code == "Capacity-Sale" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-R" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-M") {
@@ -176,6 +197,8 @@
                                    if (!me.selectTabObj.filterFields || (me.selectTabObj.filterFields && me.selectTabObj.filterFields.length == 0)) {
                                        me.selectTabObj.filterFields = clone(filterFields_);
                                        me.selectTabObj.tableFields = clone(tableFields_);
                                        me.selectTabObj.filterObj = clone(me.default_filterObj[me.selectTabObj.code])
                                        
                                        //字段数组转字段obj,目的为了筛选时获取字段属性
                                        me.fieldsToFieldsObj();
@@ -988,65 +1011,34 @@
        <div v-cloak id="vbody">
            <div id="page_root">
                <div class="topbar">
                    <span>{{title}}</span>
                    <span  style="float: left;">{{title}}</span>
                    <div style="float: right;">
                        <el-button-group style="margin-left: 3px">
                            <el-button v-show="cbuttons_r.linkpharmacy" @click="onShowLinkPharmacy">关联院外店</el-button>
                            <el-button v-show="cbuttons_r.downloadTemplate" @click="DownloadTemplate">模板下载</el-button>
                            <el-tooltip class="item" effect="dark" :content="buttonsconfig.clearandappend.tooltip" placement="top-start">
                                <el-button v-show="cbuttons_r.import" @click="onPopupByUploadFile":icon="buttonsconfig.clearandappend.icon">{{buttonsconfig.clearandappend.name}}</el-button>
                            </el-tooltip>
                            <el-button v-show="cbuttons_r.export" type="primary" @click="onDownload" :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
                        </el-button-group>
                        <!-- <el-button
                            v-show="cbuttons_r.Add && selectTabObj.code == 'hospital'" @click="addData":icon="buttonsconfig.add.icon">{{buttonsconfig.add.name}}
                        </el-button>
                        <el-button
                            v-show="cbuttons_r.Add && selectTabObj.code == 'hospital'"
                            :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
                            @click="onEditDataChange" :icon="buttonsconfig.change.icon">变更
                        </el-button>
                        <el-button
                            v-show="cbuttons_r.Auth && selectTabObj.code == 'hospital'"
                            :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
                            @click="onAuthorize('add')" :icon="buttonsconfig.authorize.icon">新增授权
                        </el-button>
                        <el-button-group v-show="selectTabObj.code == 'authorize'" style="margin-left: 3px;">
                            <el-button
                                v-show="cbuttons_r.Auth"
                                @click="onAuthorize('add')" :icon="buttonsconfig.authorize.icon">新增授权
                            </el-button>
                            <el-button
                                v-show="cbuttons_r.Auth"
                                :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
                                @click="onAuthorize('change')" :icon="buttonsconfig.authorize.icon">变更授权
                            </el-button>
                            <el-button
                                v-show="cbuttons_r.Auth"
                                :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
                                type="danger"
                                @click="onAuthorize('delete')" :icon="buttonsconfig.authorize.icon">取消授权
                            </el-button>
                    <div style="float: right; margin-right: 18px;">
                        <el-button-group
                            v-if="selectTabObj && selectTabObj.code == 'month' && selectTabObj.filterObj.dataversion == '月度初版'"
                            style="margin-left: 3px;">
                            <el-button :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.biz_date)"
                                type="primary" @click="onAddSS" :icon="buttonsconfig.add.icon">申诉</el-button>
                        </el-button-group>
                        <el-button-group v-show="selectTabObj.code == 'infoAll'" style="margin-left: 3px;">
                            <el-button
                                v-show="cbuttons_r.Add"
                                :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Rejected' || selectTabObj.selectedrow.state_code == 'Input') && selectTabObj.selectedrow.create_id == saveUser)"
                                @click="reEditInfo" :icon="buttonsconfig.edit.icon">编辑
                            </el-button>
                        <el-button-group style="margin-left: 3px;">
                            <el-button type="primary" @click=""
                                :icon="buttonsconfig.import.icon">{{buttonsconfig.import.name}}</el-button>
                            <el-button type="primary" @click=""
                                :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
                        </el-button-group>
                    </div>
                        <el-button-group v-show="selectTabObj.code == 'authAll'" style="margin-left: 3px;">
                            <el-button
                                v-show="cbuttons_r.Auth"
                                :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Rejected' || selectTabObj.selectedrow.state_code == 'Input') && selectTabObj.selectedrow.create_id == saveUser)"
                                @click="reEditAuth" :icon="buttonsconfig.edit.icon">编辑
                            </el-button>
                        </el-button-group> -->
                    <div style="float: left; margin-left: 20%;">
                        <span>报告日期:</span>
                        <span v-if="selectTabObj && selectTabObj.code == 'month'">{{newdate_month}}</span>
                        <span v-if="selectTabObj && selectTabObj.code == 'daily'">{{newdate_day}}</span>
                        <el-radio-group style="margin-left: 10px;"
                            v-if="selectTabObj && selectTabObj.filterObj && selectTabObj.code=='month'"
                            v-model="selectTabObj.filterObj.dataversion" size="mini" fill="#4cb108">
                            <el-radio-button label="月度初版">初版</el-radio-button>
                            <el-radio-button label="月度终版">终版</el-radio-button>
                        </el-radio-group>
                    </div>
                </div>
module/md/page/customer/page/customer_basic.html
@@ -358,7 +358,9 @@
                                        me.tableFieldClick();
                                    }
                                    me.formData = getDataByFields(me.formData, me.formFields);
                                    if (me.formData.file_authorization_content) {
                                        me.imgurl = config.url_root + "starwaytestroot/file/getFile?category=org&token=" + Root.getToken() + "&id=" + me.formData.file_authorization_content;
                                    }
                                    if (me.rowData[me.dataname]) {
                                        me.formData = clone(me.rowData[me.dataname]);
                                    }
@@ -557,6 +559,27 @@
                                }
                            });
                        },
                        submitUpload(one, fileList, type) {
                            this.isOCR = false;
                            let me = this;
                            let formData = new FormData();
                            var ocrtype = "";
                            formData.append("oneFile", one.raw);
                            formData.append("id", me.formData.id);
                            formData.append("dataName", "md_org_register");
                            formData.append("field_fileName", "file_name_certificate_original");
                            formData.append("field_fileId", "file_certificate_original");
                            uploadFile(me, formData, result_ => {
                                me.uploade_state = true;
                                // me.formData.file_authorization_content = result_.data.file.file_index_id;
                                me.uploadFileFun_file(one, fileList, type);
                            }, function() {}, ocrtype);
                        },
                        uploadFileFun_file(one, fileList, type) {
                            let me = this;
                            let formData = new FormData()
@@ -597,8 +620,9 @@
                                    me.fileobj = file_;
                                    me.ocrobj = form_data_;
                                    console.log("识别信息",form_data_);
                                    me.imgurl = config.url_root + "root/file/getFile?category=org&token=" + Root.getToken() + "&id=" + file_.indexid;
                                }
                                    me.imgurl = config.url_root + "starwaytestroot/file/getFile?category=org&token=" + Root.getToken() + "&id=" + file_.indexid;
                                    me.formData.file_authorization_content = file_.indexid;
                                }
                                else {
                                    me.$message({
                                        type:"warning",
@@ -628,6 +652,7 @@
                        
                                from_.register_address = form_data_.businessAddress || null;
                                from_.license_business_no = me.ocrobj.creditCode || null; // 营业执照-证照编号
                                from_.name = form_data_.companyName;
                                from_.license_business_name = form_data_.companyName;
                                from_.license_business_date_from = form_data_.validFromDate;
                                from_.license_business_date_to = form_data_.validToDate;
@@ -721,6 +746,7 @@
                            if (me.fileobj.indexid) {
                                me.fileobj.indexid = ""
                            }
                            me.formData.file_authorization_content = ""
                        },
                        
                        //提交
@@ -1053,7 +1079,7 @@
                                ref="reportUpload1"
                                list-type="picture-card" 
                                :file-list="formData1.mdm_img"
                                :on-change="(file, fileList) => {uploadFileFun_file(file, fileList, '1')}"
                                :on-change="(file, fileList) => {submitUpload(file, fileList, '1')}"
                                :auto-upload="false">
                                    <!-- <i slot="default" class="el-icon-plus"></i> -->
                                    <span style="font-size: 14px; color: #909399;">营业执照上传</span>
module/md/page/customer/page/customer_list_authorization.html
@@ -18,11 +18,11 @@
                        title: "授权管理",
                        //Tab项设置
                        tabs_d: [
                            {code: "agmAll", name: "协议医院", dataname: "md_org_account_hospital", filterTxt: "agreement_id is not null and (md_org_account_hospital.state_code='Open' or md_org_account_hospital.state_code='Closed')", orderby: "md_org_account_hospital.date_to"},
                            {code: "agmAll", name: "协议医院", dataname: "md_org_account_hospital", filterTxt: "term_code='long-term' and md_org_account_hospital.state_code='Open'", orderby: "md_org_account_hospital.date_to"},
                            // {code: "Input", name: "授权申请", dataname: "md_org_account_hospital_apply", filterTxt: "(state_code='Input' or state_code='OpeningApproval')", orderby: "md_org_account_hospital_apply.date_to"},
                            // {code: "Open", name: "生效", dataname: "md_org_account_hospital", filterTxt: "apply_id is not null and md_org_account_hospital.state_code='Open'", orderby: "md_org_account_hospital.date_to"},
                            // {code: "Close", name: "终止", dataname: "md_org_account_hospital", filterTxt: "apply_id is not null and md_org_account_hospital.state_code='Closed'", orderby: "md_org_account_hospital.date_to"},
                            {code: "All", name: "非协议医院", dataname: "md_org_account_hospital", filterTxt: "apply_id is not null and (md_org_account_hospital.state_code='Open' or md_org_account_hospital.state_code='Closed')", orderby: "md_org_account_hospital.date_to"},
                            {code: "All", name: "非协议医院", dataname: "md_org_account_hospital", filterTxt: "term_code='temp-term' and md_org_account_hospital.state_code='Open'", orderby: "md_org_account_hospital.date_to"},
                        ],
                        d_tabs: {
                            Input: true,
module/md/page/framework/page/territory_list.html
@@ -2,7 +2,7 @@
<html>
    <head>
        <meta charset="utf-8"><meta http-equiv="Expires" content="0"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-control" content="no-cache"><meta http-equiv="Cache" content="no-cache">
        <title>商务架构</title>
        <title>商务运营</title>
        
        <script type="text/javascript">
            var pageVue = null;
@@ -17,7 +17,7 @@
                new TreeVue({
                    el: "#vbody",
                    data: {
                        title: "商务架构",
                        title: "商务运营",
                        dataname: "md_position_business",
                        treeTxtFormatter: "{name}【{md_position_employee__remark}】",
                        maxlevel: 6,
@@ -1062,7 +1062,7 @@
                <div class="h_dialog__body">
                    <div :style="{position: 'absolute', left: '16px', width: '40%', top: '40px', bottom: '10px', border: '1px solid #E4E7ED'}">
                        <div style="height: 32px;line-height: 32px;border-bottom: 1px solid #E4E7ED ;">
                            <span style="font-size: 14px;margin-left: 20px;">商务架构</span>
                            <span style="font-size: 14px;margin-left: 20px;">商务运营</span>
                            <!-- <div style="padding: 0.5px 20px;box-sizing: border-box; width: 100%;border-bottom: 1px solid #e4e7ed;"> -->
                            <!-- <div style="margin: 0.5px 12px;">  
                                <el-select v-model="treeFilter.orgid" placeholder="选择公司" style="width: 49%;" @change="onTreeFilterChange()">
module/md/page/terminal/page/hospital_list_warehouse.html
@@ -165,33 +165,6 @@
                            
                            //表格字段事件设置
                            tablefieldClick = {
                                state_name: {//状态
                                    val: {//有值时的点击事件
                                        notclick_val: ["草稿","草稿"],
                                        notclick_bindfield: [],
                                        onclick: function(obj) {
                                            var config = {
                                                totab: false,
                                                width: "1100px",
                                                height: "520px",
                                                icon: "icon-product",
                                                text: "流程步骤",
                                                id: "popup_workflow_step_user" + obj.row.id,
                                                url: "module/tool/page/popup_workflow_step_user.html?v=2023020703",
                                                data: obj.row,
                                                delta: {},
                                                sceneCode: "browse",
                                                callback: function(obj, callback) {
                                                    if (callback) {
                                                        callback();
                                                    }
                                                }
                                            };
                                            me.doPopupByPublic(config);
                                        },
                                    },
                                },
                                terminal_code: {//字段事件设置
                                    val: {//有值时的点击事件
                                        onclick: function(obj) {//数据值点击事件
@@ -202,32 +175,6 @@
                            };
                            tablefieldClickOpen = {
                                state_name: {//状态
                                    val: {//有值时的点击事件
                                        notclick_val: ["草稿","草稿"],
                                        notclick_bindfield: [],
                                        onclick: function(obj) {
                                            var config = {
                                                totab: false,
                                                width: "1100px",
                                                height: "520px",
                                                icon: "icon-product",
                                                text: "流程步骤",
                                                id: "popup_workflow_step_user" + obj.row.id,
                                                url: "module/tool/page/popup_workflow_step_user.html?v=2023020703",
                                                data: obj.row,
                                                delta: {},
                                                sceneCode: "browse",
                                                callback: function(obj, callback) {
                                                    if (callback) {
                                                        callback();
                                                    }
                                                }
                                            };
                                            me.doPopupByPublic(config);
                                        },
                                    },
                                },
                                code: {//字段事件设置
                                    val: {//有值时的点击事件
                                        onclick: function(obj) {//数据值点击事件
@@ -275,11 +222,18 @@
                        },
                        tableButtonClick() {
                            var me = this;
                            var tablebuttonclick = [];
                            tablebuttonclick = [
                                {
                            var tablebuttonclick = {};
                            tablebuttonclick.Open = [
                                {
                                    isbuttonshow: true, type: "primary",
                                    code: "add", isselected: false, classname:"",
                                    onclick: function(obj) {
                                        me.onEditData("add", {})
                                    }
                                },
                                {
                                    isbuttonshow: me.cbuttons_r.edit, type: "primary",
                                    code: "edit", isselected: true, classname:"",
                                    code: "change", isselected: true, classname:"",
                                    disabled: function(selectRowList) {
                                        var bo_ = true;
                                        if (selectRowList[0]) {
@@ -310,10 +264,55 @@
                                        me.onEditData("edit",obj.selectedList[0])
                                    }
                                },
                            ]
                            me.selectTabObj.tablebuttonClick = tablebuttonclick
                            
                            tablebuttonclick.alias = [
                                {
                                    isbuttonshow: true, type:"primary",
                                    code: "add",isselected: false,classname: "",
                                    onclick: function(obj) {
                                        me.openCustomer('add')
                                    }
                                },
                                {
                                    // name: "删除", // type: "primary", // icon: "el-icon-edit",
                                    isbuttonshow: true,    type: "danger",
                                    code: "delete", isselected: true, classname: "",
                                    disabled: function(selectRowList) {
                                        var bo_ = true ;
                                        if (selectRowList[0]) {
                                            bo_ = false
                                        }
                                        return bo_;
                                    },
                                    onclick: function(obj) {
                                        me.delData()
                                    }
                                },
                            ]
                            tablebuttonclick.uploadlog = [
                                {    // 详情
                                    isbuttonshow: true, type: "primary",
                                    code: "formdetail", isselected: true, classname:"",
                                    disabled: function(selectRowList) {
                                        var bo_ = true;
                                        if (selectRowList[0]) {
                                            bo_ = false;
                                        }
                                        return bo_
                                    },
                                    onclick: function(obj) {
                                        me.onChangeLog("browse",obj.selectedList[0])
                                    }
                                },
                            ]
                            if (tablebuttonclick[this.activeTabName]) {
                                this.selectTabObj.tablebuttonClick = tablebuttonclick[this.activeTabName];
                            }
                            else {
                                this.selectTabObj.tablebuttonClick = []
                            }
                        },
                        
                        showInfo(obj, sceneCode) {
@@ -339,7 +338,47 @@
                            };
                            me.doPopupByPublic(config);
                        },
                        delData: function(scope) {
                            let me = this;
                            var row = me.selectTabObj.selectedrow;
                            let name_ = "该数据";
                            if (!row.id) {
                                Root.message({
                                    type: 'warning',
                                    message: '该事件需存在数据ID'
                                });
                                return
                            }
                            if (row.name) {
                                name_ = "_" + row.name + "_";
                            }
                            Root.confirm('确定删除' + name_ + '吗?', '删除提示', {
                              confirmButtonText: '删除',
                              cancelButtonText: '取消',
                              type: 'warning'
                            }).then(() => {
                                let param = {
                                    id: row.id,
                                    dataname: me.selectTabObj.dataname,
                                }
                                Server.call("root/data/deleteEntity", param, function(result) {
                                    Root.message({
                                        type: 'success',
                                        message: '删除成功!'
                                    });
                                    me.onQuery();
                                });
                            }).catch(() => {
                                Root.message({
                                    type: 'info',
                                    message: '已取消删除'
                                });
                            });
                        },
                        commitData(obj) {
                            var me = this;
                            Root.confirm('确定提交' + obj.name + '的变更申请吗?', '提交提示', {
@@ -401,6 +440,30 @@
                                        me.onQuery();
                                    // }
                                    if (callback) {
                                        callback();
                                    }
                                },
                            };
                            me.doPopupByPublic(config);
                        },
                        onChangeLog(sceneCode,row) {
                            var me = this;
                            //3. popup
                            config = {
                                totab: false,
                                icon: "icon-product",
                                text: "终端更改信息",
                                width: "900px",
                                height: "400px",
                                id: "popup_hospital_log" + sceneCode,
                                url: "module/md/page/terminal/page/popup/popup_hospital_log.html",
                                sceneCode: sceneCode,
                                data: row,
                                delta: {},
                                callback: function(obj, callback) {
                                    if (callback) {
                                        callback();
                                    }
@@ -684,7 +747,7 @@
                             -->
                            <el-button v-show="cbuttons_r.export && selectTabObj.code == 'Open'" @click="onDownload" :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
                            
                            <el-button v-show= "cbuttons_r.synchronous ? cbuttons_r.synchronous : false" type="primary" @click="getOA" :loading="loading_oa" icon="el-icon-refresh-right">同步OA医院</el-button>
                            <!-- <el-button v-show= "cbuttons_r.synchronous ? cbuttons_r.synchronous : false" type="primary" @click="getOA" :loading="loading_oa" icon="el-icon-refresh-right">同步OA医院</el-button> -->
                        </el-button-group>
                         <!-- <el-button-group v-show="selectTabObj.code == 'Open'" style="margin-left: 3px">
                            <el-button v-show="cbuttons_r.Import" @click="DownloadTemplate">模板下载</el-button>
module/system/page/home/page/home_sale.html
@@ -58,7 +58,7 @@
                        modulelist: [
                            {isshow: "T", code: "M001", title: "我的通知", layout: "left", width: "100%", height: "30%", order_no: 1},
                            // {isshow: "T", code: "M002", title: "我的申请", layout: "left", width: "50%", height: "30%", order_no: 2},
                            {isshow: "T", code: "M003", title: "我的指标", layout: "left", width: "100%", height: "306px", order_no: 3},
                            {isshow: "T", code: "M003", title: "我的绩效", layout: "left", width: "100%", height: "306px", order_no: 3},
                            {isshow: "T", code: "M004", title: "我的客户", layout: "left", width: "100%", height: "148px", order_no: 4},
                            {isshow: "T", code: "M005", title: "工作日历", layout: "right", width: "100%", height: "50%", order_no: 5},
                            {isshow: "T", code: "M006", title: "快捷入口", layout: "right", width: "100%", height: "50%", order_no: 6},
@@ -94,24 +94,19 @@
                                // {createtime: "2023-10-12", code: "D00000010", name: "北京瑞欣康泰科技有限公司"},
                            ],
                            M003: {
                                shangcai: {
                                    amt: {
                                        year: {},
                                        quarter: {},
                                        month: {},
                                        // year: {year:"2023", quarter: "3", month:"7", val_target: 600, val_sale: 300, rate_completion: 50},
                                        // quarter: {year:"2023", quarter: "3", month:"7", val_target: 150, val_sale: 100, rate_completion: 66},
                                        // month: {year:"2023", quarter: "3", month:"7", val_target: 50, val_sale: 40, rate_completion: 80},
                                    },
                                    qty: {
                                        year: {},
                                        quarter: {},
                                        month: {},
                                        // year: {year:"2023", quarter: "3", month:"7", val_target: 600, val_sale: 300, rate_completion: 50},
                                        // quarter: {year:"2023", quarter: "3", month:"7", val_target: 150, val_sale: 100, rate_completion: 66},
                                        // month: {year:"2023", quarter: "3", month:"7", val_target: 50, val_sale: 40, rate_completion: 80},
                                    }
                                month: {
                                    // bf_reach: {}, // 拜访达成
                                    // tg_reach: {}, // 推广达成
                                    // xs_reach: {}, // 销售达成
                                    bf_reach: {year:"2024", quarter: "3", month:"08", val_target: 220, val_sale: 100, rate_completion: 45},
                                    tg_reach: {year:"2024", quarter: "3", month:"08", val_target: 160, val_sale: 120, rate_completion: 75},
                                    xs_reach: {year:"2024", quarter: "3", month:"08", val_target: 10000, val_sale: 3000, rate_completion: 30},
                                },
                                year: {
                                    bf_reach: {year:"2024", quarter: "3", month:"08", val_target: 2000, val_sale: 1600, rate_completion: 80},
                                    tg_reach: {year:"2024", quarter: "3", month:"08", val_target: 1800, val_sale: 1200, rate_completion: 67},
                                    xs_reach: {year:"2024", quarter: "3", month:"08", val_target: 120000, val_sale: 80000, rate_completion: 67},
                                },
                                zhiru: {
                                    amt: {
@@ -329,8 +324,8 @@
                                                val_target: summary_obj_dealer.month_qty_target_sum, val_sale: summary_obj_dealer.month_qty_achieve_sum, 
                                                rate_completion: summary_obj_dealer.month_qty_target_sum ? window.top.toPercent((summary_obj_dealer.month_qty_achieve_sum / summary_obj_dealer.month_qty_target_sum) * 100) : ""},
                                        }
                                        dataobj_.M003.shangcai.amt = clone(M003_sc_amt);
                                        dataobj_.M003.shangcai.qty = clone(M003_sc_qty);
                                        // dataobj_.M003.shangcai.amt = clone(M003_sc_amt);
                                        // dataobj_.M003.shangcai.qty = clone(M003_sc_qty);
                                    }
                                    // 植入
                                    if (me.dataRequestObj.business_data_summary_zr && me.dataRequestObj.business_data_summary_zr.data) {
@@ -363,8 +358,8 @@
                                                rate_completion: summary_obj_implant.month_qty_target_sum ? window.top.toPercent((summary_obj_implant.month_qty_achieve_sum / summary_obj_implant.month_qty_target_sum) * 100) : ""},
                                        }
                                        
                                        dataobj_.M003.zhiru.amt = clone(M003_zr_amt);
                                        dataobj_.M003.zhiru.qty = clone(M003_zr_qty);
                                        // dataobj_.M003.zhiru.amt = clone(M003_zr_amt);
                                        // dataobj_.M003.zhiru.qty = clone(M003_zr_qty);
                                    }
                                    if (me.dataRequestObj.channel_qtysum) {
                                        var channel_qtysum_obj = {}
@@ -388,14 +383,14 @@
                                         */
                                        var M004_ = {
                                            Customer: [
                                                {type:"first", actor: "直采客商", cnt: channel_qtysum_obj.first ? channel_qtysum_obj.first : 0},
                                                {type:"platform", actor: "平台商", cnt: channel_qtysum_obj.platform ? channel_qtysum_obj.platform : 0},
                                                {type:"second", actor: "非直采客商", cnt: channel_qtysum_obj.second ? channel_qtysum_obj.second : 0},
                                                {type:"distribute", actor: "配送商", cnt: channel_qtysum_obj.distribute ? channel_qtysum_obj.distribute : 0},
                                                {type:"first", actor: "储备", cnt: channel_qtysum_obj.first ? channel_qtysum_obj.first : 0},
                                                {type:"platform", actor: "预合作", cnt: channel_qtysum_obj.platform ? channel_qtysum_obj.platform : 0},
                                                {type:"second", actor: "合作中", cnt: channel_qtysum_obj.second ? channel_qtysum_obj.second : 0},
                                                {type:"distribute", actor: "退出/调整", cnt: channel_qtysum_obj.distribute ? channel_qtysum_obj.distribute : 0},
                                            ],
                                            Hospital: [
                                                {type:"hospital", actor: "辖区医院", cnt: channel_qtysum_obj.hospital ? channel_qtysum_obj.hospital : 0},
                                                // {type:"hospital", actor: "其它医院", cnt: 12},
                                                {type:"hospital", actor: "医院", cnt: channel_qtysum_obj.hospital ? channel_qtysum_obj.hospital : 0},
                                                {type:"pharmacy", actor: "药店", cnt: 12},
                                            ]
                                        }
                                        
@@ -1129,10 +1124,10 @@
                                        <div class="h_card_title">
                                            <span>{{module_l.title}}</span>
                                            
                                            <el-radio-group style="float: right;" v-if="module_l.code == 'M003'" v-model="target_type" size="mini" @input="targetTypeChange">
                                            <!-- <el-radio-group style="float: right;" v-if="module_l.code == 'M003'" v-model="target_type" size="mini" @input="targetTypeChange">
                                                <el-radio-button label="amt">金额</el-radio-button>
                                                <el-radio-button label="qty">数量</el-radio-button>
                                            </el-radio-group>
                                            </el-radio-group> -->
                                        </div>
                                        
                                        <!-- 我的通知 -->
@@ -1177,21 +1172,15 @@
                                                <el-col :span="8">
                                                    <div style="font-size: 14px;">
                                                        <div class="h_title_fontsize">
                                                            <span style="border-bottom: 1px solid #0270c1;">商采指标 {{dataobj[module_l.code].shangcai[target_type].year.year}}年度</span>
                                                            <span style="border-bottom: 1px solid #0270c1;">拜访完成 {{dataobj[module_l.code].month['bf_reach'].year}} - {{dataobj[module_l.code].month['bf_reach'].month}}</span>
                                                        </div>
                                                        <div class="h_card_fontsize" style="text-align: left;">
                                                            <el-col :span="15">
                                                                <div class="h_cnt_div"><span>指标{{target_type == 'amt'? '金额(万元)' : '数量' }}:</span>
                                                                    <br />
                                                                    <span class="h_cnt_fontsize"> {{dataobj[module_l.code].shangcai[target_type].year.val_target ? '0':'0'}}</span>
                                                                </div>
                                                                <div class="h_cnt_div"><span>达成{{target_type == 'amt'? '金额(万元)' : '数量' }}:</span>
                                                                    <br />
                                                                    <span class="h_cnt_fontsize"> {{dataobj[module_l.code].shangcai[target_type].year.val_sale}}</span>
                                                                </div>
                                                        <div class="h_card_fontsize" style="text-align: center;">
                                                            <el-col :span="15" class="h_card_fontsize_dc">
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].month['bf_reach'].val_sale}} / {{dataobj[module_l.code].month['bf_reach'].val_target}}</span></div>
                                                                <div>实际拜访次数/计划次数</div>
                                                            </el-col>
                                                            <el-col :span="9" class="h_card_fontsize_dc">
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].shangcai[target_type].year.rate_completion ? '0':'0'}}</span></div>
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].month['bf_reach'].rate_completion}}%</span></div>
                                                                <div>达成率</div>
                                                            </el-col>
                                                        </div>
@@ -1200,21 +1189,15 @@
                                                <el-col :span="8">
                                                    <div style="font-size: 14px;">
                                                        <div class="h_title_fontsize">
                                                            <span style="border-bottom: 1px solid #0270c1;">商采指标 {{dataobj[module_l.code].shangcai[target_type].year.year}} - {{dataobj[module_l.code].shangcai[target_type].quarter.quarter}}季度</span>
                                                            <span style="border-bottom: 1px solid #0270c1;">推广达成 {{dataobj[module_l.code].month['tg_reach'].year}} - {{dataobj[module_l.code].month['tg_reach'].month}}</span>
                                                        </div>
                                                        <div class="h_card_fontsize" style="text-align: left;">
                                                            <el-col :span="15" style="border-left: 1px solid #0270c1;">
                                                                <div class="h_cnt_div"><span>指标{{target_type == 'amt'? '金额(万元)' : '数量' }}:</span>
                                                                    <br />
                                                                    <span class="h_cnt_fontsize"> {{dataobj[module_l.code].shangcai[target_type].quarter.val_target ? '0':'0'}}</span>
                                                                </div>
                                                                <div class="h_cnt_div"><span>达成{{target_type == 'amt'? '金额(万元)' : '数量' }}:</span>
                                                                    <br />
                                                                    <span class="h_cnt_fontsize"> {{dataobj[module_l.code].shangcai[target_type].quarter.val_sale}}</span>
                                                                </div>
                                                        <div class="h_card_fontsize" style="text-align: center;">
                                                            <el-col :span="15" class="h_card_fontsize_dc" style="border-left: 1px solid #0270c1;">
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].month['tg_reach'].val_sale}} / {{dataobj[module_l.code].month['tg_reach'].val_target}}</span></div>
                                                                <div>实际推广家数/计划家数</div>
                                                            </el-col>
                                                            <el-col :span="9" class="h_card_fontsize_dc">
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].shangcai[target_type].quarter.rate_completion ? '0':'0'}}</span></div>
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].month['tg_reach'].rate_completion}}%</span></div>
                                                                <div>达成率</div>
                                                            </el-col>
                                                        </div>
@@ -1223,26 +1206,19 @@
                                                <el-col :span="8">
                                                    <div style="font-size: 14px;">
                                                        <div class="h_title_fontsize">
                                                            <span style="border-bottom: 1px solid #0270c1;">商采指标 {{dataobj[module_l.code].shangcai[target_type].year.year}} - {{dataobj[module_l.code].shangcai[target_type].month.month}}月度</span>
                                                            <span style="border-bottom: 1px solid #0270c1;">销售达成 {{dataobj[module_l.code].month['xs_reach'].year}} - {{dataobj[module_l.code].month['xs_reach'].month}}</span>
                                                        </div>
                                                        <div class="h_card_fontsize" style="text-align: left;">
                                                            <el-col :span="15" style="border-left: 1px solid #0270c1;">
                                                                <div class="h_cnt_div"><span>指标{{target_type == 'amt'? '金额(万元)' : '数量' }}:</span>
                                                                    <br />
                                                                    <span class="h_cnt_fontsize"> {{dataobj[module_l.code].shangcai[target_type].month.val_target ? '0':'0'}}</span>
                                                                </div>
                                                                <div class="h_cnt_div"><span>达成{{target_type == 'amt'? '金额(万元)' : '数量' }}:</span>
                                                                    <br />
                                                                    <span class="h_cnt_fontsize"> {{dataobj[module_l.code].shangcai[target_type].month.val_sale}}</span>
                                                                </div>
                                                        <div class="h_card_fontsize" style="text-align: center;">
                                                            <el-col :span="15" class="h_card_fontsize_dc" style="border-left: 1px solid #0270c1;">
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].month['xs_reach'].val_sale}} / {{dataobj[module_l.code].month['xs_reach'].val_target}}</span></div>
                                                                <div>实际销量/计划销量</div>
                                                            </el-col>
                                                            <el-col :span="9" class="h_card_fontsize_dc">
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].shangcai[target_type].month.rate_completion ? '0':'0'}}</span></div>
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].month['xs_reach'].rate_completion}}%</span></div>
                                                                <div>达成率</div>
                                                            </el-col>
                                                        </div>
                                                    </div>
                                                </el-col>
                                            </el-row>
                                            <!-- 植入指标 -->
@@ -1250,21 +1226,15 @@
                                                <el-col :span="8">
                                                    <div style="font-size: 14px;">
                                                        <div class="h_title_fontsize">
                                                            <span style="border-bottom: 1px solid #0270c1;">植入指标 {{dataobj[module_l.code].zhiru[target_type].year.year}}年度</span>
                                                            <span style="border-bottom: 1px solid #0270c1;">拜访完成 {{dataobj[module_l.code].year['bf_reach'].year}} YTD</span>
                                                        </div>
                                                        <div class="h_card_fontsize" style="text-align: left;">
                                                            <el-col :span="15">
                                                                <div class="h_cnt_div"><span>指标{{target_type == 'amt'? '金额(万元)' : '数量' }}:</span>
                                                                    <br />
                                                                    <span class="h_cnt_fontsize"> {{dataobj[module_l.code].zhiru[target_type].year.val_target ? '0':'0'}}</span>
                                                                </div>
                                                                <div class="h_cnt_div"><span>达成{{target_type == 'amt'? '金额(万元)' : '数量' }}:</span>
                                                                    <br />
                                                                    <span class="h_cnt_fontsize"> {{dataobj[module_l.code].zhiru[target_type].year.val_sale}}</span>
                                                                </div>
                                                        <div class="h_card_fontsize" style="text-align: center;">
                                                            <el-col :span="15" class="h_card_fontsize_dc">
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].year['bf_reach'].val_sale}} / {{dataobj[module_l.code].year['bf_reach'].val_target}}</span></div>
                                                                <div>实际拜访次数/计划次数</div>
                                                            </el-col>
                                                            <el-col :span="9" class="h_card_fontsize_dc">
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].zhiru[target_type].year.rate_completion ? '0':'0'}}</span></div>
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].year['bf_reach'].rate_completion}}%</span></div>
                                                                <div>达成率</div>
                                                            </el-col>
                                                        </div>
@@ -1273,21 +1243,15 @@
                                                <el-col :span="8">
                                                    <div style="font-size: 14px;">
                                                        <div class="h_title_fontsize">
                                                            <span style="border-bottom: 1px solid #0270c1;">植入指标 {{dataobj[module_l.code].zhiru[target_type].year.year}} - {{dataobj[module_l.code].zhiru[target_type].quarter.quarter}}季度</span>
                                                            <span style="border-bottom: 1px solid #0270c1;">推广达成 {{dataobj[module_l.code].year['tg_reach'].year}} YTD</span>
                                                        </div>
                                                        <div class="h_card_fontsize" style="text-align: left;">
                                                            <el-col :span="15" style="border-left: 1px solid #0270c1;">
                                                                <div class="h_cnt_div"><span>指标{{target_type == 'amt'? '金额(万元)' : '数量' }}:</span>
                                                                    <br />
                                                                    <span class="h_cnt_fontsize"> {{dataobj[module_l.code].zhiru[target_type].quarter.val_target ? '0':'0'}}</span>
                                                                </div>
                                                                <div class="h_cnt_div"><span>达成{{target_type == 'amt'? '金额(万元)' : '数量' }}:</span>
                                                                    <br />
                                                                    <span class="h_cnt_fontsize"> {{dataobj[module_l.code].zhiru[target_type].quarter.val_sale}}</span>
                                                                </div>
                                                        <div class="h_card_fontsize" style="text-align: center;">
                                                            <el-col :span="15" class="h_card_fontsize_dc" style="border-left: 1px solid #0270c1;">
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].year['tg_reach'].val_sale}} / {{dataobj[module_l.code].year['tg_reach'].val_target}}</span></div>
                                                                <div>实际推广家数/计划家数</div>
                                                            </el-col>
                                                            <el-col :span="9" class="h_card_fontsize_dc">
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].zhiru[target_type].quarter.rate_completion ? '0':'0'}}</span></div>
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].year['tg_reach'].rate_completion}}%</span></div>
                                                                <div>达成率</div>
                                                            </el-col>
                                                        </div>
@@ -1296,26 +1260,19 @@
                                                <el-col :span="8">
                                                    <div style="font-size: 14px;">
                                                        <div class="h_title_fontsize">
                                                            <span style="border-bottom: 1px solid #0270c1;">植入指标 {{dataobj[module_l.code].zhiru[target_type].year.year}} - {{dataobj[module_l.code].zhiru[target_type].month.month}}月度</span>
                                                            <span style="border-bottom: 1px solid #0270c1;">销售达成 {{dataobj[module_l.code].year['xs_reach'].year}} YTD</span>
                                                        </div>
                                                        <div class="h_card_fontsize" style="text-align: left;">
                                                            <el-col :span="15" style="border-left: 1px solid #0270c1;">
                                                                <div class="h_cnt_div"><span>指标{{target_type == 'amt'? '金额(万元)' : '数量' }}:</span>
                                                                    <br />
                                                                    <span class="h_cnt_fontsize"> {{dataobj[module_l.code].zhiru[target_type].month.val_target ? '0':'0'}}</span>
                                                                </div>
                                                                <div class="h_cnt_div"><span>达成{{target_type == 'amt'? '金额(万元)' : '数量' }}:</span>
                                                                    <br />
                                                                    <span class="h_cnt_fontsize"> {{dataobj[module_l.code].zhiru[target_type].month.val_sale}}</span>
                                                                </div>
                                                        <div class="h_card_fontsize" style="text-align: center;">
                                                            <el-col :span="15" class="h_card_fontsize_dc" style="border-left: 1px solid #0270c1;">
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].year['xs_reach'].val_sale}} / {{dataobj[module_l.code].year['xs_reach'].val_target}}</span></div>
                                                                <div>实际销量/计划销量</div>
                                                            </el-col>
                                                            <el-col :span="9" class="h_card_fontsize_dc">
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].zhiru[target_type].month.rate_completion ? '0':'0'}}</span></div>
                                                                <div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].year['xs_reach'].rate_completion}}%</span></div>
                                                                <div>达成率</div>
                                                            </el-col>
                                                        </div>
                                                    </div>
                                                </el-col>
                                            </el-row>
                                        </div>
@@ -1323,11 +1280,11 @@
                                        <!-- 我的客户 -->
                                        <div v-else-if="module_l.code == 'M004'" class="h_card_body">
                                            <el-row >
                                                <el-col :span="20">
                                                <el-col :span="18">
                                                    <div style="font-size: 14px;">
                                                    <div class="h_title_fontsize" >
                                                        <i class="iconfont icon-gongwenbao h_cellclick" style="color: #ff5500;" @click="onOpenMenu('org')"></i>
                                                        <span class="h_cellclick" @click="onOpenMenu('org')">经销商</span>
                                                        <span class="h_cellclick" @click="onOpenMenu('org')">推广商</span>
                                                    </div>
                                                        <div class="h_div_flex">
                                                            <div v-for="(data_1, key1) in dataobj[module_l.code].Customer" style="display: block;">
@@ -1335,18 +1292,17 @@
                                                                <div>{{data_1.actor}}</div>
                                                            </div>
                                                        </div>
                                                    </div>
                                                </el-col>
                                                <el-col :span="4">
                                                <el-col :span="6">
                                                    <div style="font-size: 14px;">
                                                        <div class="h_title_fontsize" >
                                                            <i class="iconfont icon-yiyuan h_cellclick" style="color: #ff5500;" @click="onOpenMenu('hospital')"></i>
                                                            <span class=" h_cellclick" @click="onOpenMenu('hospital')">医院</span>
                                                            <span class=" h_cellclick" @click="onOpenMenu('hospital')">终端</span>
                                                        </div>
                                                        <div class="h_div_flex" style="border-left: 1px solid #0270c1; justify-content: center;">
                                                        <div class="h_div_flex" style="border-left: 1px solid #0270c1;">
                                                            <div v-for="(data_1, key1) in dataobj[module_l.code].Hospital" style="display: block;">
                                                                <div style="text-align: center;"><span class="h_cnt20_fontsize">{{data_1.cnt}}</span>家</div>
                                                                <div><span class="h_cnt20_fontsize">{{data_1.cnt}}</span>家</div>
                                                                <div>{{data_1.actor}}</div>
                                                            </div>
                                                        </div>
module/target/page/customer_target_list.html
@@ -2,7 +2,7 @@
<html>
    <head>
        <meta charset="utf-8"><meta http-equiv="Expires" content="0"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-control" content="no-cache"><meta http-equiv="Cache" content="no-cache">
        <title>经销商指标</title>
        <title>指标管理</title>
        
        <script type="text/javascript">
            var pageVue = null;
@@ -15,7 +15,7 @@
                pageVue = new TabTableVue({
                    el: "#vbody",
                    data: {
                        title: "经销商指标",
                        title: "指标管理",
                        //Tab项设置
                        tabs_d: [
@@ -26,7 +26,7 @@
                            // {code: "All", name: "全部", dataname: "md_target_dealer", filterTxt: "1 = 1", orderby: "update_time desc"},
                            {code: "Open", name: "推广商指标", dataname: "md_target_dealer", filterTxt: "(type_code='target_dealer_sc' or type_code='dealer')", orderby: "md_target_dealer.update_time desc"},
                            {code: "TargetSum", name: "省区经理指标", dataname: "md_target_dealer", filterTxt: "(type_code='target_dealer_zr' or type_code='implant')", orderby: "md_target_dealer.update_time desc"},
                            {code: "TargetSum", name: "省区经理指标", dataname: "v_target_position", filterTxt: "", orderby: ""},
                            // {code: "Apply", name: "指标申请", dataname: "md_target_apply", filterTxt: "1 = 1", orderby: "update_time desc"},
                        ],
                        tabs: [],
module/target/page/terminal_target_list.html
@@ -20,8 +20,8 @@
                        //Tab项设置
                        tabs_d: [
                            // {code: "Target", name: "医院植入指标", dataname: "md_target_hospital", filterTxt: "state_code='Open'", orderby: "update_date desc,hospital_code,category_name desc"},
                            {code: "Target", name: "医院植入指标", dataname: "md_target_hospital", filterTxt: "state_code='Open'", orderby: "year desc, update_time desc"},
                            {code: "purchaseTarget", name: "医院商采指标", dataname: "md_target_dealer_hospital", filterTxt: "state_code='Open'", orderby: "year desc, update_time desc"},
                            {code: "Target", name: "医院植入指标", dataname: "md_target_hospital", filterTxt: "md_target_hospital.state_code='Open'", orderby: "md_target_hospital.year desc, md_target_hospital.update_time desc"},
                            {code: "purchaseTarget", name: "医院商采指标", dataname: "md_target_dealer_hospital", filterTxt: "md_target_hospital.state_code='Open'", orderby: "md_target_hospital.year desc, md_target_hospital.update_time desc"},
                            // {code: "TargetApply", name: "指标申请", dataname: "md_target_hospital_apply", filterTxt: "1 = 1", orderby: "update_time desc"},
                        ],
                        tabs: [],
module/visit/page/popup/popup_alert.html
New file
@@ -0,0 +1,225 @@
<!doctype html>
<html>
    <head>
        <meta charset="utf-8"><meta http-equiv="Expires" content="0"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-control" content="no-cache"><meta http-equiv="Cache" content="no-cache">
        <title>推广预警信息</title>
        <script type="text/javascript">
            var pageVue = null;
            function loadJsCss(callback) {
                var jscss_urls = [];
                window.top.initJsCss(document, jscss_urls, callback);
            };
            function initVue() {
                new ListVue({
                    el: "#vbody",
                    data: {
                        dataname: "sys_alert",
                        title: "推广预警信息",
                        pageAttr: {
                            heightType: "popuppage"
                        },
                        filterAttr: {
                            columnnumber: 3,
                            labelwidth: "100px",
                            labelposition: "right",//"left",//"right",
                            size: "medium",
                            border: "0px solid #c6c6c600"
                        },
                        filterObjBydefault: {},
                        filterfieldClick: {},
                        tablefieldClick: {},
                        formfieldClick: {},
                    },
                    created() {
                        this.popupParames = clone(Root.popupParames);
                        this.title = this.popupParames.title || this.popupParames.text
                        if (this.popupParames.filter) {
                            this.filterTxt = this.popupParames.filter
                        }
                        if (this.popupParames.dataname) {
                            this.dataname = this.popupParames.dataname;
                        }
                        if (this.popupParames.sceneCode) {
                            if (this.popupParames.sceneCode == "add") {//新增
                                this.isedit = true;
                            }
                        }
                    },
                    mounted() {
                        //获取数据
                        this.initData();
                        this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
                            hideLoading();
                        });
                    },
                    methods:{
                        //关闭弹窗
                        closeDialog() {
                            this.docloseDialog(true);
                        },
                        //关闭前调回调
                        saveAfter() {
                            var me = this;
                            if(this.popupParames.callback) {
                                let obj = {
                                    row: clone(this.selectedrow)
                                }
                                this.popupParames.callback(obj, function() {
                                    me.docloseDialog();
                                });
                            }
                            else {
                                me.docloseDialog();
                            }
                        },
                        initData() {
                            var me = this;
                            this.onQuery(function(result, callback) {//查询后的回调,用于获取字段的
                                if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) {
                                    var metas = clone(result.meta[me.dataname].fields);
                                    var filterFields_ = [];
                                    var tableFields_ = [];
                                    metas.map(f=>{
                                        f.isshow = "T";
                                        if (f.isfilter) {
                                            filterFields_.push(clone(f));
                                        }
                                        tableFields_.push(clone(f));
                                    })
                                    if (!me.filterFields || (me.filterFields && me.filterFields.length == 0)) {
                                        me.filterFields = clone(filterFields_);
                                        me.tableFields = clone(tableFields_);
                                        //字段数组转字段obj,目的为了筛选时获取字段属性
                                        me.fieldsToFieldsObj();
                                        //设置字段事件
                                        me.tableFieldClick();
                                    }
                                }
                                if (callback) {
                                    callback();
                                }
                            });
                        },
                        tableFieldClick() {
                            var me = this;
                            //筛选字段事件设置
                            this.filterfieldClick = {
                            };
                            //表格字段事件设置
                            this.tablefieldClick = {
                            };
                            //表单字段事件设置
                            this.formfieldClick = {
                            };
                        },
                        onRowDblClick() {
                            if (this.isedit) {
                                this.saveAfter();
                            }
                        },
                    }
                });
            };
            loadJsCss(function () {
                initVue();
            });
        </script>
        <style>
            /* 在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */
            [v-cloak] {
                display: none !important;
            }
            .h_table .h_h_table .h_table_tool .h_basicfilter {
                width: 80% !important;
            }
        </style>
    </head>
    <body style="margin: 0px;">
        <div v-cloak id="vbody">
            <div id="page_root">
                <div ref="popup_body" style="padding: 0 20px;">
                    <!-- 标题 -->
                    <!-- <div class="el-dialog__header">
                        <div class="dialog-title">
                          <i class="iconfont icon-customermanagement"></i>
                          <span>{{title}}</span>
                        </div>
                    </div>     -->
                    <!-- 主体 -->
                    <!-- <div class="topbar-line">
                        <div class="query-bar">
                            <h-form-filter ref="form1"
                                :form-attr="filterAttr"
                                :table-fields="filterFields"
                                :form-data="filterObj"
                                :table-field-click="filterfieldClick"
                                v-on:on-query="onQuery"
                                v-on:on-init-query="onInitFilter"
                                >
                            </h-form-filter>
                        </div>
                    </div> -->
                    <div class="h_dialog__body">
                        <h-table
                            v-if="isRefresh"
                            ref="table1"
                            :table-fields="tableFields"
                            :table-data="tableData"
                            :pagesize="pagesize"
                            :pagenum="pagenum"
                            :total="total"
                            :table-height="tableHeight"
                            :table-field-click="tablefieldClick"
                            :is-highlight-row="isedit"
                            :is-show-index="false"
                            :filtersobj="filterObj"
                            v-on:get-data="getData"
                            v-on:row-click="rowClick"
                            v-on:row-dblclick="rowDblclick"
                        >
                        </h-table>
                    </div>
                    <!-- 底部工具栏 -->
                    <div class="el-dialog__footer">
                        <el-button size="small" type="default" @click="closeDialog">取 消</el-button>
                        <el-button size="small" v-if="isedit" type="primary" @click="saveAfter">确 定</el-button>
                    </div>
                </div>
            </div>
        </div>
        <div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 50vh;">
            <div class="spinner">
              <div class="cube1"></div>
              <div class="cube2"></div>
            </div>
        </div>
    </body>
</html>
module/visit/page/process_definition.html
@@ -17,13 +17,13 @@
                new TreeVue({
                    el: "#vbody",
                    data: {
                        dataname: "md_bu_product", // "md_prod_category",
                        title: "产品列表",
                        tree_title: "BU/产品",
                        dataname: "md_promotion", // "md_prod_category",
                        title: "过程定义",
                        tree_title: "过程",
                        treeTxtFormatter: "{name}",
                        isTreeReadonly: true,
                        dataname_p: "md_prod_sku",
                        detail_title: "定义",
                        dataname_p: "md_promotion_process",
                        pagesize_p: 10,
                        pagenum_p: 1,
                        total_p: 0,
@@ -81,32 +81,20 @@
                                var buobj_ = {};
                                var initTreeData = clone(me.initTreeData);
                                initTreeData.map(td=>{
                                    if (!buobj_[td.bu_id]) {
                                        var bu_= {
                                            id: td.bu_id,
                                            bu_id: td.bu_id,
                                            name: td.bu_name,
                                        }
                                        treeData_.push(bu_);
                                        buobj_[td.bu_id] = bu_
                                    }
                                    td.id = td.bu_id + "_" + td.product_id;
                                    td.parent_id = td.bu_id;
                                    td.name = td.product_name;
                                    treeData_.push(td);
                                })
                                
                                me.initTreeData = clone(treeData_)
                                
                                var orderArray = ["冠脉介入","神经介入","外周介入","血管内成像", "电生理"];
                                let initTreeData_ = ArrayToTree(clone(me.initTreeData), "name", "parent_id", null, null, null, orderArray);
                                if (me.cbuttons_r.allocation) {
                                    var notAllocationProduct = {
                                        id: "notAllocationProduct",
                                        name: "未分配产品"
                                    }
                                    initTreeData_.push(notAllocationProduct);
                                }
                                // var orderArray = ["冠脉介入","神经介入","外周介入","血管内成像", "电生理"];
                                let initTreeData_ = ArrayToTree(clone(me.initTreeData), "name", "parent_id", null, null, null, null);
                                // if (me.cbuttons_r.allocation) {
                                //     var notAllocationProduct = {
                                //         id: "notAllocationProduct",
                                //         name: "未分配产品"
                                //     }
                                //     initTreeData_.push(notAllocationProduct);
                                // }
                                
                                me.treeData = initTreeData_;
                                
@@ -115,28 +103,6 @@
                                }
                                
                                me.getTableMeta();
                                //待完善
                                // if(me.treeData[0].children[0].children[0]) {
                                //     let objInit = {
                                //         data: clone(me.treeData[0].children[0].children[0]),
                                //         node: {},
                                //         el: {},
                                //     };
                                //     me.onNodeClick(objInit);
                                // }
                                //Brooke
                                // console.log(me.treeData);
                                // if(me.treeData[0]) {
                                //     let objInit = me.findNodeInit(me.treeData[0]);
                                //     console.log(objInit);
                                // }
                                //GPT3.5
                                // const deepestNode = me.findDeepestNode(me.treeData[0]);
                                // console.log(deepestNode);
                                if(me.treeData[0]) {
                                    const leafNode = me.findLeafNode(me.treeData[0]);
                                    let objInit = {
@@ -289,33 +255,7 @@
                        onNodeClick(obj) {
                            console.log(obj);
                            var data = obj.data, node = obj.node, el = obj.el;
                            var filter_node_val = "";
                            if (data.id == "notAllocationProduct") { // 未分配的产品
                                filter_node_val = "NOT EXISTS ( SELECT * FROM md_bu_product where md_prod_sku.product_id = product_id)"
                            }
                            else if (!data.product_id) {
                                var filter_node_val_ = "";
                                if (data.children && data.children.length) {
                                    data.children.map(p=>{
                                        if (!filter_node_val_) {
                                            filter_node_val_ = "('" + p.product_id;
                                        }
                                        else {
                                            filter_node_val_ += "','" + p.product_id;
                                        }
                                    })
                                    filter_node_val_ += "')";
                                }
                                if (filter_node_val_) {
                                    filter_node_val = "md_prod_sku.product_id in " + filter_node_val_;
                                }
                                else {
                                    filter_node_val = "1<>1"
                                }
                            }
                            else {
                                filter_node_val = "md_prod_sku.product_id='" + data.product_id + "'"
                            }
                            var filter_node_val = "parent_id='" + data.id + "'"
                            
                            // this.filterObjBydefault.category_name = val
                            this.selectedrow = data;
@@ -328,26 +268,6 @@
                        },
                        
                        // onNodeClick(data, node, el) {
                        //     var val = data.name;
                        //     if (data.children && data.children.length) {
                        //         val = "";
                        //         data.children.map(r=>{
                        //             if (val == "") {
                        //                 val = r.name;
                        //             }
                        //             else {
                        //                 val += "','" + r.name;
                        //             }
                        //         })
                        //     }
                        //     // this.filterObjBydefault.category_name = val
                        //     this.selectedrow = data;
                        //     this.pagenum_p = 1;
                        //     this.getDataByNode();
                        // },
                        getDataByNode() {
                            var me = this;
                            if (!me.selectedrow.id) {
@@ -356,14 +276,11 @@
                            
                            var filter_ = "";
                            
                            // filter_ = " product_line_name like '" + this.selectedrow.name + "' or authorize_category_name like '" + this.selectedrow.name + "'"
                            //filter_ = " code is not null and code <> '' and (authorize_category_id = '" + me.selectedrow.type_id + "' or authorize_category_name like '" + me.selectedrow.name + "')"
                            filter_ =  this.filter_node_val;
                            var param_ = {
                                dataname: me.dataname_p,
                                filter: filter_,
                                orderby: "md_prod_sku.product_name, md_prod_sku.spec",
                                orderby: "order_no",
                                page: {
                                    pageno: me.pagenum_p,
                                    pagesize: me.pagesize_p
@@ -760,7 +677,7 @@
                        <div>
                            <div style="height: 32px; border-bottom: 1px solid #aaa;">
                                <div class="table_title" style="float: left;">
                                    <span>SKU列表</span>
                                    <span>{{detail_title}}</span>
                                </div>
                                <!-- <div style=" text-align: right; ">
                                    <el-button v-show="cbuttons_r.RuleValue" :disabled="!(setSelectedRowId)" @click="setRuleValue" >设置下单倍数</el-button>
module/visit/page/visit_log_list.html
@@ -68,6 +68,7 @@
                    mounted() {
                        var me = this;
                        if (window.top.tab.selected.option.page_id) {
                            this.title = window.top.tab.selected.option.menutitle
                            // this.page_id = window.top.tab.selected.option.page_id;
                            getPageByPageId(window.top.tab.selected.option.page_id, function(result){
                                me.cbuttons_r = result.buttons_r;
module/visit/page/visit_schedule_list.html
@@ -25,7 +25,7 @@
                        tabs_d: [
                            {code: "schedule", name: "进度汇总", dataname: "v_customer_promotion", filterTxt: "", orderby: ""},
                            {code: "detail", name: "进度明细", dataname: "md_terminal_promotion", filterTxt: "", orderby: ""},
                            {code: "warning", name: "预警列表", dataname: "md_terminal_promotion_detail", filterTxt: "", orderby: ""},
                            // {code: "warning", name: "预警列表", dataname: "sys_alert", filterTxt: "", orderby: ""},
                        ],
                        d_tabs: {
                            hospital: true,
@@ -38,29 +38,7 @@
                        tabs: [],
                        tabsobj: {},
                        dataRequest: [
                            // {
                            //     name: "md_province",
                            //     dataname: "md_province",
                            //     // url: "root/data/newEntity",
                            //     // paramsobj: {dataname: "md_org_data", type_code:"Distributor"},
                            //     isnotoption: false, //true:不是选项
                            //     code:"name",//是下拉选项时设置
                            //     label:"name",//是下拉选项时设置
                            //     filter: ""
                            // },
                            // {
                            //     name: "machine_state",
                            //     dataname: "v_state_machine_state",
                            //     // url: "root/data/newEntity",
                            //     // paramsobj: {dataname: "md_org_data", type_code:"Distributor"},
                            //     isnotoption: false, //true:不是选项
                            //     code:"code",//是下拉选项时设置
                            //     label:"name",//是下拉选项时设置
                            //     // orderby: "index_no",
                            //     filter: "parent_id='md_hospital_business_change'",
                            // },
                        ],
                        dataRequest: [],
                        authTableFields: [
                            {field: "code", name: "医院编码", isshow: "T", align: "center",width: "150"},
@@ -99,6 +77,7 @@
                    mounted() {
                        var me = this;
                        if (window.top.tab.selected.option.page_id) {
                            this.title = window.top.tab.selected.option.menutitle
                            // this.page_id = window.top.tab.selected.option.page_id;
                            getPageByPageId(window.top.tab.selected.option.page_id, function(result){
                                me.cbuttons_r = result.buttons_r;
@@ -244,7 +223,7 @@
                            };
                            //辖区变更
                            var tablefieldClick_detail = {
                                code: { //字段事件设置
                                    val: { //有值时的点击事件
                                        notclick_val: "", //不可点击的值,1、是数组["11","22"];2、以“;”分隔的字符串"111;222"
@@ -254,31 +233,42 @@
                                        },
                                    },
                                },
                                is_clinical: {
                                    chart: {
                                        type: "progress",// 进度条类型
                                        field: "val_ratio",//进度值字段
                                        progresswidth: 20,//粗度
                                        isshowtext: true,//是否显示值
                                        istextinside: true//是否在进度条内显示值
                                is_alert: {
                                    val: {
                                        icon: "el-icon-warning",
                                        iconcolor: "#f15c42",
                                        onclick: function(obj) { //数据值点击事件
                                            me.showAlertInfo(obj)
                                        },
                                    }
                                },
                                is_clinical_purchase: {
                                    chart: {
                                        type: "progress",
                                        field: "val_ratio",
                                        progresswidth: 10,
                                        isshowtext: true
                                    }
                                },
                                is_formal_purchase: {
                                    chart: {
                                        type: "progress",
                                        field: "val_ratio",
                                        progresswidth: 10,
                                        isshowtext: false
                                    }
                                },
                                // is_clinical: {
                                //     chart: {
                                //         type: "progress",// 进度条类型
                                //         field: "val_ratio",//进度值字段
                                //         progresswidth: 20,//粗度
                                //         isshowtext: true,//是否显示值
                                //         istextinside: true//是否在进度条内显示值
                                //     }
                                // },
                                // is_clinical_purchase: {
                                //     chart: {
                                //         type: "progress",
                                //         field: "val_ratio",
                                //         progresswidth: 10,
                                //         isshowtext: true
                                //     }
                                // },
                                // is_formal_purchase: {
                                //     chart: {
                                //         type: "progress",
                                //         field: "val_ratio",
                                //         progresswidth: 10,
                                //         isshowtext: false
                                //     }
                                // },
                            };
                            //医院授权列表
                            var tablefieldClick_org = {
@@ -631,6 +621,31 @@
                            me.doPopupByPublic(config);
                        },
                        
                        showAlertInfo(obj) {
                            var me = this;
                            var filter_ = "doc_id='"+obj.row.id+"'"
                            var config = {
                                totab: false, //true: 以Tab导航的方式打开
                                width: "1200px",
                                height: "600px",
                                icon: "icon-product",
                                text: obj.row.hospital_name  + "-预警信息",
                                id: "popup_alert" + "browse" + obj.row.id,//totab: true时需设置,用于判断是否已打开此页面
                                url: "module/visit/page/popup/popup_alert.html",
                                data: obj.row,
                                delta: {},
                                filter: filter_,
                                sceneCode: "browse", //"add"//"browse",
                                callback: function(obj, callback) {
                                    if (callback) {
                                        callback();
                                    }
                                }
                            };
                            me.doPopupByPublic(config);
                        },
                        //辖区医院信息查看
                        showInfo(obj) {
                            var me = this;