| | |
| | | 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({ |
| | |
| | | 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; |
| | |
| | | } |
| | | 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) { |
| | |
| | | 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; |
| | |
| | | ' </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> '+ |
| | |
| | | //无点击 |
| | | ' <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"> '+ |
| | |
| | | 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)} |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | 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, |
| | |
| | | {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: {}, |
| | |
| | | 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") { |
| | |
| | | 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(); |
| | |
| | | <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> |
| | | |
| | |
| | | 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, |
| | |
| | | {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: {}, |
| | |
| | | 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") { |
| | |
| | | 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(); |
| | |
| | | <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> |
| | | |
| | |
| | | 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]); |
| | | } |
| | |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | 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() |
| | |
| | | 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({ |
| | |
| | | |
| | | 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; |
| | |
| | | if (me.fileobj.indexid) { |
| | | me.fileobj.indexid = "" |
| | | } |
| | | me.formData.file_authorization_content = "" |
| | | }, |
| | | |
| | | //提交 |
| | |
| | | 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> |
| | |
| | | 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, |
| | |
| | | <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; |
| | |
| | | new TreeVue({ |
| | | el: "#vbody", |
| | | data: { |
| | | title: "商务架构", |
| | | title: "商务运营", |
| | | dataname: "md_position_business", |
| | | treeTxtFormatter: "{name}【{md_position_employee__remark}】", |
| | | maxlevel: 6, |
| | |
| | | <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()"> |
| | |
| | | |
| | | //表格字段事件设置 |
| | | 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) {//数据值点击事件 |
| | |
| | | }; |
| | | |
| | | 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) {//数据值点击事件 |
| | |
| | | }, |
| | | 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]) { |
| | |
| | | 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) { |
| | |
| | | } |
| | | }; |
| | | 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) { |
| | |
| | | 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(); |
| | | } |
| | |
| | | --> |
| | | <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> |
| | |
| | | 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}, |
| | |
| | | // {createtime: "2023-10-12", code: "D00000010", name: "北京瑞欣康泰科技有限公司"}, |
| | | ], |
| | | M003: { |
| | | shangcai: { |
| | | amt: { |
| | | year: {}, |
| | | quarter: {}, |
| | | month: {}, |
| | | month: { |
| | | // bf_reach: {}, // 拜访达成 |
| | | // tg_reach: {}, // 推广达成 |
| | | // xs_reach: {}, // 销售达成 |
| | | |
| | | // 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}, |
| | | 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}, |
| | | }, |
| | | 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}, |
| | | } |
| | | 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: { |
| | |
| | | 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) { |
| | |
| | | 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 = {} |
| | |
| | | */ |
| | | 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}, |
| | | ] |
| | | } |
| | | |
| | |
| | | <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> |
| | | |
| | | <!-- 我的通知 --> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | | <!-- 植入指标 --> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <!-- 我的客户 --> |
| | | <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;"> |
| | |
| | | <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> |
| | |
| | | <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; |
| | |
| | | pageVue = new TabTableVue({ |
| | | el: "#vbody", |
| | | data: { |
| | | title: "经销商指标", |
| | | title: "指标管理", |
| | | |
| | | //Tab项设置 |
| | | tabs_d: [ |
| | |
| | | // {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: [], |
| | |
| | | //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: [], |
New file |
| | |
| | | <!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> |
| | |
| | | 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, |
| | |
| | | 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_; |
| | | |
| | |
| | | } |
| | | |
| | | 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 = { |
| | |
| | | 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; |
| | |
| | | |
| | | }, |
| | | |
| | | // 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) { |
| | |
| | | |
| | | 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 |
| | |
| | | <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> |
| | |
| | | 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; |
| | |
| | | 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, |
| | |
| | | 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"}, |
| | |
| | | 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; |
| | |
| | | }, |
| | | }, |
| | | }, |
| | | 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 = { |
| | |
| | | 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; |