Przeglądaj źródła

专利提醒
消息提醒优化
客服修改

HW 3 lat temu
rodzic
commit
6f7d16b698

+ 44 - 0
js/component/dataDic.js

@@ -3916,5 +3916,49 @@ module.exports = {
       value:14,
       label:'离职签单业务转交',
     },
+  ],
+  //消息提醒状态
+  //状态 0 未提醒 1 剩余90天 2剩余30天 3剩余20天 4剩余10天 5剩余3天 6剩余2天 7剩余1天
+  messageReminderStart:[
+    {
+      value: "0",
+      key: "未提醒",
+      color:'#f5bc12'
+    },
+    {
+      value: "1",
+      key: "已触发剩余90天提醒",
+      color:'#30f306'
+    },
+    {
+      value: "2",
+      key: "已触发剩余30天提醒",
+      color:'#27aa06'
+    },
+    {
+      value: "3",
+      key: "已触发剩余20天提醒",
+      color:'#196607'
+    },
+    {
+      value: "4",
+      key: "已触发剩余10天提醒",
+      color:'#0d4405'
+    },
+    {
+      value: "5",
+      key: "已触发剩余3天提醒",
+      color:'#b300ff'
+    },
+    {
+      value: "6",
+      key: "已触发剩余2天提醒",
+      color:'#ff5500'
+    },
+    {
+      value: "7",
+      key: "已触发剩余1天提醒",
+      color:'#f00'
+    },
   ]
 };

+ 225 - 62
js/component/manageCenter/customer/NEW/crm/patentPayment.jsx

@@ -1,29 +1,22 @@
 import React from 'react';
-import { Radio, Icon, Button, AutoComplete,Cascader,Input, Select, Spin, Popconfirm, Table, Switch, message, DatePicker, Upload, Form ,Modal,Tabs} from 'antd';
-import ajax from 'jquery/src/ajax/xhr.js';
+import {  Icon, Button, AutoComplete,Input, Select, Spin, Table, Switch, message, DatePicker, Form ,Modal,Tabs} from 'antd';
 import $ from 'jquery/src/ajax';
 import moment from 'moment';
-import TechAchievementDesc from '@/manageCenter/achievement/crmAchievement.jsx';
-import { citySelect, provinceList ,areaSelect} from '@/NewDicProvinceList';
-import { socialAttribute, industry, auditStatusL, lvl, currentMember ,slcRedit,dataGrade,cityArr,patentTypeList} from '@/dataDic.js';
+
+import { cityArr,patentTypeList} from '@/dataDic.js';
 import {
-  getSocialAttribute,
   beforeUploadFile,
   splitUrl,
-  getSlcRedit,
-  getDataGrade,
-  getAchievementCategory,
-  getTechAuditStatus,
-  getboutique,
   getPatentType,
   getcityArr,
-  getPatentTypeva,
-  ShowModal
+  ShowModal,
+  getMessageReminderStart
 } from "@/tools.js";
 import './customer.less';
 import ShowModalDiv from "@/showModal.jsx";
 import ImgList from "../../../../common/imgList";
 import {ChooseList} from "../../../order/orderNew/chooseList";
+import ReminderLog from "./reminderLog";
 const Option = AutoComplete.Option;
 const { TabPane } = Tabs;
 //图片组件
@@ -170,6 +163,8 @@ const PatentPayment = Form.create()(React.createClass({
 							certificateUrl:thisdata.certificateUrl,
 							aname:thisdata.aname,
 							depName:thisdata.depName,
+							userName:thisdata.userName,
+							uid:thisdata.uid
 						});
 					};
 					this.state.pagination.current = data.data.pageNo;
@@ -240,9 +235,12 @@ const PatentPayment = Form.create()(React.createClass({
 				dataIndex: 'patentAmount',
 				key: 'patentAmount'
 			},{
-				title: '授权公司',
-				dataIndex: 'applicant',
-				key: 'applicant'
+				title: '客户名称',
+				dataIndex: 'userName',
+				key: 'userName',
+				render:(text, record)=>(
+					record.uid ? text : record.applicant
+				)
 			},{
 				title: '录入人',
 				dataIndex: 'aname',
@@ -263,14 +261,31 @@ const PatentPayment = Form.create()(React.createClass({
 				title: '状态',
 				dataIndex: 'status',
 				key: 'status',
+				//状态 0 未提醒 1 剩余90天 2剩余30天 3剩余20天 4剩余10天 5剩余3天 6剩余2天 7剩余1天
 				render:text=>{
-					if (text === 1) {
-						return '已提醒'
-					}else{
-						return '待提醒'
-					}
+					return (getMessageReminderStart(text,true))
 				}
-			}]
+			}, {
+				title: '操作',
+				dataIndex: 'id',
+				key: 'id',
+				render: (text) => (
+					<Button
+						type={"primary"}
+						onClick={(e) => {
+							e.stopPropagation();
+							this.setState({
+								reminderLogVisible:true,
+								reminderLogId:text
+							})
+						}}
+					>
+						查看日志
+					</Button>
+				)
+			}
+			],
+			customerServiceList:[]
 		}
 	},
 	componentWillMount(){
@@ -313,10 +328,22 @@ const PatentPayment = Form.create()(React.createClass({
 			message.warning('专利名称不能为空')
 			return
 		}
+		if (!this.state.appDate) {
+			message.warning('申请日期不能为空')
+			return
+		}
 		if(this.state.patentType === ''){
 		    message.warning('专利类型不能为空');
 		    return
 		}
+		if (!this.state.authDate) {
+			message.warning('授权日期不能为空')
+			return
+		}
+		if (!this.state.customerUid) {
+			message.warning('客户名称不能为空')
+			return
+		}
 		let mobile = /^1[0-9]{10}$/ , phone = /^([0-9]{3,4}-)?[0-9]{7,8}$/ , phone1 = /^\d{3,4}-\d{3,4}-\d{3,4}$/;
 		if(this.state.contactPhone && !(mobile.test(this.state.contactPhone) || phone.test(this.state.contactPhone) || phone1.test(this.state.contactPhone))){
 			message.warning('电话格式不正确');
@@ -345,11 +372,12 @@ const PatentPayment = Form.create()(React.createClass({
 				type:this.state.patentType,
 				applyDates:this.state.appDate,
 				authorizationDates:this.state.authDate,
-				applicant:this.state.proposer,
+				// applicant:this.state.proposer,
 				province:this.state.province,
 				contactMobile:this.state.contactPhone,
 				email:this.state.email,
 				certificateUrl:theorgCodeUrl.length?theorgCodeUrl:'',
+				uid:this.state.customerUid,
 			}
 		}).done(function(data) {
 			this.setState({
@@ -380,6 +408,8 @@ const PatentPayment = Form.create()(React.createClass({
 			email:record.email,
 			certificateUrl:record.certificateUrl,
 			orgCodeUrl: record.certificateUrl ? splitUrl(record.certificateUrl, ',', globalConfig.avatarHost + '/upload') : [],
+			customerUid:record.uid,
+			customerName:record.userName
 		})
 		localStorage.setItem('newData','{}');
 	},
@@ -403,10 +433,22 @@ const PatentPayment = Form.create()(React.createClass({
 			message.warning('专利名称不能为空')
 			return
 		}
+		if (!this.state.appDate) {
+			message.warning('申请时间不能为空')
+			return
+		}
 		if(this.state.patentType === ''){
 		    message.warning('专利类型不能为空');
 		    return
 		}
+		if (!this.state.authDate) {
+			message.warning('授权日期不能为空')
+			return
+		}
+		if (!this.state.customerUid) {
+			message.warning('客户名称不能为空')
+			return
+		}
 		let mobile = /^1[0-9]{10}$/ , phone = /^([0-9]{3,4}-)?[0-9]{7,8}$/ , phone1 = /^\d{3,4}-\d{3,4}-\d{3,4}$/;
 		if(this.state.contactPhone && !(mobile.test(this.state.contactPhone) || phone.test(this.state.contactPhone) || phone1.test(this.state.contactPhone))){
 			message.warning('电话格式不正确');
@@ -436,12 +478,13 @@ const PatentPayment = Form.create()(React.createClass({
 				type:this.state.patentType,
 				applyDates:this.state.appDate,
 				authorizationDates:this.state.authDate,
-				applicant:this.state.proposer,
+				// applicant:this.state.proposer,
 				province:this.state.province,
 				contactMobile:this.state.contactPhone,
 				email:this.state.email,
 				status:this.state.status,
 				certificateUrl:theorgCodeUrl.length?theorgCodeUrl:'',
+				uid:this.state.customerUid,
 			},
 			success: function (data) {
 			}.bind(this),
@@ -465,7 +508,8 @@ const PatentPayment = Form.create()(React.createClass({
 
 	avisitCancel(){
 		this.setState({
-			avisible:false
+			avisible:false,
+			customerServiceList:[]
 		})
 	},
 	reset(){
@@ -479,7 +523,10 @@ const PatentPayment = Form.create()(React.createClass({
 			proposer:'',
 			province:undefined,
 			contactPhone:'',
-			email:''
+			email:'',
+			customerUid:undefined,
+			customerName:undefined,
+			customerServiceList:[],
 		})
 	},
 
@@ -522,6 +569,40 @@ const PatentPayment = Form.create()(React.createClass({
 			changeList: newArr
 		});
 	},
+	//获取渠道专员列表
+	getAdminList(value = '') {
+		$.ajax({
+			method: "get",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + "/api/admin/customer/getUserByName",
+			data: {
+				name: value,
+			},
+			success: function (data) {
+				let theArr = [];
+				if (data.error && data.error.length) {
+					message.warning(data.error[0].message);
+				}else{
+					if(data.data){
+						data.data.map(function (item, _) {
+							theArr.push({
+								value: item.id,
+								label: item.name,
+							});
+						});
+					}
+				}
+				this.setState({
+					customerServiceList: theArr,
+				});
+			}.bind(this),
+		}).always(
+			function () {
+
+			}.bind(this)
+		);
+	},
 
 	render(){
 		const theData = this.state.RowData || {};
@@ -769,7 +850,11 @@ const PatentPayment = Form.create()(React.createClass({
               <FormItem
                 className="half-item"
                 {...formItemLayout}
-                label="申请日期"
+				label={
+					<span>
+					 <strong style={{ color: "#f00" }}>*</strong>申请日期
+				    </span>
+				}
               >
 				  {
 					  !this.props.isOnlyRead ?
@@ -788,7 +873,11 @@ const PatentPayment = Form.create()(React.createClass({
               <FormItem
                 className="half-item"
                 {...formItemLayout}
-                label="授权日期"
+				label={
+					<span>
+					 <strong style={{ color: "#f00" }}>*</strong>授权日期
+				    </span>
+				}
               >
 				  {
 					  !this.props.isOnlyRead ?
@@ -826,30 +915,52 @@ const PatentPayment = Form.create()(React.createClass({
 					{!this.props.isOnlyRead ? <p>图片建议:要清晰。</p> : null}
                 </FormItem>
               </div>
-              <FormItem
+			  <div className="clearfix">
+				  <FormItem
+					  className="half-item"
+					  {...formItemLayout}
+					  label={
+						  <span>
+							<strong style={{ color: "#f00" }}>*</strong>客户名称
+						  </span>
+					  }
+				  >
+					  {
+						  !this.props.isOnlyRead ?
+							  <Select
+								  showSearch
+								  value={this.state.customerServiceList.length === 0 ? (this.state.customerName || undefined) : this.state.customerUid}
+								  style={{ width: 150,marginLeft:'10px' }}
+								  onSearch={this.getAdminList}
+								  onSelect={(v)=>{
+									  this.setState({
+										  customerUid:v
+									  })
+								  }}
+								  filterOption={false}
+								  placeholder="请输入客户名称"
+							  >
+								  {this.state.customerServiceList.map((v,k)=>(
+									  <Option title={v.label} key={k} value={v.value}>{v.label}</Option>
+								  ))}
+							  </Select> : <div>{this.state.customerName}</div>
+					  }
+				  </FormItem>
+			  </div>
+              {this.state.proposer ? <FormItem
                 className="half-item"
                 {...formItemLayout}
                 label="申请人"
               >
-				{
-				 !this.props.isOnlyRead ?
-                  <Input
-                    placeholder="请输入申请人/公司"
-                    value={this.state.proposer}
-                    onChange={e => {
-                      this.setState({ proposer: e.target.value });
-                    }}
-                    style={{ width: "240px" }}
-                  /> : <div>{this.state.proposer}</div>
-                }
-              </FormItem>
+				  <div>{this.state.proposer}</div>
+              </FormItem> : null}
               <FormItem className="half-item" {...formItemLayout} label="省份">
 				  {
 					  !this.props.isOnlyRead ?
                 <Select
                   placeholder="请选择省份"
                   style={{ width: "240px" }}
-                  value={getcityArr(this.state.province)}
+                  value={this.state.province ? String(this.state.province) : ''}
                   onChange={e => {
                     this.setState({ province: e });
                   }}
@@ -902,9 +1013,14 @@ const PatentPayment = Form.create()(React.createClass({
               <FormItem
                 className="half-item"
                 {...formItemLayout}
-                label={"状态"}
+                label="状态"
               >
-                <span>{this.state.status ? "已提醒" : "待提醒"}</span>
+                <span>
+					{/*状态 0 未提醒 1 剩余90天 2剩余30天 3剩余20天 4剩余10天 5剩余3天 6剩余2天 7剩余1天*/}
+					{
+						getMessageReminderStart(this.state.status,true)
+					}
+                </span>
               </FormItem>
             </div>
 			  {!this.props.isOnlyRead ? <div style={{ overflow: "hidden" }}>
@@ -976,7 +1092,11 @@ const PatentPayment = Form.create()(React.createClass({
               <FormItem
                 className="half-item"
                 {...formItemLayout}
-                label="申请日期"
+				label={
+					<span>
+					 <strong style={{ color: "#f00" }}>*</strong>申请日期
+				    </span>
+				}
               >
                 <DatePicker
                   style={{ marginTop: "2px", width: "240px", height: "32px" }}
@@ -1020,7 +1140,11 @@ const PatentPayment = Form.create()(React.createClass({
               <FormItem
                 className="half-item"
                 {...formItemLayout}
-                label="授权日期"
+				label={
+					<span>
+					 <strong style={{ color: "#f00" }}>*</strong>授权日期
+				    </span>
+				}
               >
                 <DatePicker
                   style={{ marginTop: "2px", width: "240px", height: "32px" }}
@@ -1049,27 +1173,56 @@ const PatentPayment = Form.create()(React.createClass({
                   <p>图片建议:要清晰。</p>
                 </FormItem>
               </div>
+				<div className="clearfix">
+					<FormItem
+						className="half-item"
+						{...formItemLayout}
+						label={
+							<span>
+								<strong style={{ color: "#f00" }}>*</strong>客户名称
+							  </span>
+						}
+					>
+						<Select
+							showSearch
+							value={this.state.customerUid}
+							style={{ width: 150,marginLeft:'10px' }}
+							onSearch={this.getAdminList}
+							onSelect={(v)=>{
+								this.setState({
+									customerUid:v
+								})
+							}}
+							filterOption={false}
+							placeholder="请输入客户名称"
+						>
+							{this.state.customerServiceList.map((v,k)=>(
+								<Option key={k} value={v.value}>{v.label}</Option>
+							))}
+						</Select>
+					</FormItem>
+				</div>
               <div>
                 <span style={{ marginLeft: "50px", fontSize: "20px" }}>
                   申请人资料
                 </span>
               </div>
-              <FormItem
-                className="half-item"
-                {...formItemLayout}
-                label="申请人/公司"
-              >
-                {
-                  <Input
-                    placeholder="请输入申请人/公司"
-                    value={this.state.proposer}
-                    onChange={e => {
-                      this.setState({ proposer: e.target.value });
-                    }}
-                    style={{ width: "240px" }}
-                  />
-                }
-              </FormItem>
+              {/*<FormItem*/}
+              {/*  className="half-item"*/}
+              {/*  {...formItemLayout}*/}
+              {/*  label="申请人/公司"*/}
+              {/*>*/}
+              {/*  {*/}
+              {/*    <Input*/}
+              {/*      placeholder="请输入申请人/公司"*/}
+              {/*      value={this.state.proposer}*/}
+              {/*      onChange={e => {*/}
+              {/*        this.setState({ proposer: e.target.value });*/}
+              {/*      }}*/}
+              {/*      style={{ width: "240px" }}*/}
+              {/*    />*/}
+              {/*  }*/}
+              {/*</FormItem>*/}
               <FormItem className="half-item" {...formItemLayout} label="省份">
                 <Select
                   placeholder="请选择省份"
@@ -1138,6 +1291,16 @@ const PatentPayment = Form.create()(React.createClass({
             </div>
           </Modal> : <div/>}
         </div>
+		  {this.state.reminderLogVisible ? <ReminderLog
+			  id={this.state.reminderLogId}
+			  visible={this.state.reminderLogVisible}
+			  cancel={()=>{
+			  	this.setState({
+					reminderLogVisible:false,
+					reminderLogId:''
+				})
+			  }}
+		  /> : null}
       </div>
     );
 	}

+ 106 - 0
js/component/manageCenter/customer/NEW/crm/reminderLog.jsx

@@ -0,0 +1,106 @@
+import React from "react";
+import {Spin, Table, message, Modal, Tooltip} from "antd";
+import $ from "jquery/src/ajax";
+import moment from 'moment';
+
+const ReminderLog = React.createClass({
+    getInitialState() {
+        return {
+            loading: false,
+            colunmn: [
+                {
+                    title: "序号",
+                    dataIndex: "id",
+                    key: "id",
+                },
+                {
+                    title: "内容",
+                    dataIndex: "content",
+                    key: "content",
+                    width:800,
+                    render: (text) => {
+                        return (
+                            <Tooltip placement="topLeft" title={text}>
+                                <div style={{
+                                    maxWidth:'800px',
+                                    overflow:'hidden',
+                                    textOverflow: "ellipsis",
+                                    whiteSpace:'nowrap',
+                                }}>{text}</div>
+                            </Tooltip>
+                        )
+                    }
+                },
+                {
+                    title: "时间",
+                    dataIndex: "createTime",
+                    key: "createTime",
+                    render: (text) => (
+                        moment(text).format('YYYY-MM-DD HH:mm:ss')
+                    )
+                }
+            ]
+        };
+    },
+    loadData() {
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/patentNew/selectPatentNewLog",
+            data: {
+                id: this.props.id,
+            },
+            success: function (data) {
+                if (data.error.length || data.data.list == "") {
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    }
+                } else {
+                    this.setState({
+                        dataSource: data.data,
+                    });
+                }
+            }.bind(this),
+        }).always(
+            function () {
+                this.setState({
+                    loading: false,
+                });
+            }.bind(this)
+        );
+
+    },
+    componentWillMount() {
+        this.loadData()
+    },
+    render() {
+        return (
+            <Modal
+                style={{ position: "relative" }}
+                title='日志'
+                visible={this.props.visible}
+                onCancel={this.props.cancel}
+                footer={null}
+                width={1000}
+                destroyOnClose={true}
+            >
+                <Spin spinning={this.state.loading} >
+                    <Table
+                        columns={this.state.colunmn}
+                        dataSource={this.state.dataSource}
+                        pagination={false}
+                        scroll={{ x: "max-content", y: 0 }}
+                        bordered
+                        size="small"
+                    />
+                </Spin>
+            </Modal>
+        );
+    },
+});
+
+export default ReminderLog;

+ 1 - 1
js/component/manageCenter/customer/NEW/intentionCustomer/transferRecords.jsx

@@ -113,7 +113,7 @@ const TransferRecords = React.createClass({
                 visible={this.props.visible}
                 onCancel={this.props.cancel}
                 footer={null}
-                width={800}
+                width={1000}
                 destroyOnClose={true}
             >
                 <Spin spinning={this.state.loading} >

+ 90 - 23
js/component/manageCenter/customerService/administration/customerServiceRecord.jsx

@@ -21,7 +21,7 @@ class CustomerServiceRecord extends Component{
                     title: "跟进人",
                     dataIndex: "adminName",
                     key: "adminName",
-                    width: 100,
+                    width: 130,
                 },
                 {
                     title: "是否已添微信",
@@ -48,13 +48,13 @@ class CustomerServiceRecord extends Component{
                     key: "renewal",
                     width: 150,
                     render: (text,record) => {
-                        let str = text === 0 ? '其他' :
-                            text === 1 ? '否,企业已签其他机构' :
-                                text === 2 ? '否,企业自己申报' :
-                                    text === 3 ? '否,企业不打算申报/注销' :
-                                        text === 4 ? '否,客户考虑中,无报价' :
-                                            text === 5 ? '否,客户考虑中,已报价' :
-                                                text === 6 ? '是,已续签/复审,续签时间、续签项目('+record.renewalTimes+')' : ''
+                        let str = text === 0 ? '未联系上当前联系人' :
+                            text === 1 ? '企业已签其他机构' :
+                                text === 2 ? '企业自己申报' :
+                                    text === 3 ? '企业不打算申报/注销' :
+                                        text === 4 ? '待续签,未报价(客服维护中)' :
+                                            text === 5 ? '待续签,已报价(客服维护中)' :
+                                                text === 6 ? '已续签/复审、续签时间、续签项目('+record.renewalTimes+')' : ''
                         return (
                             <Tooltip placement="topLeft" title={str}>
                                 <div style={{
@@ -85,6 +85,41 @@ class CustomerServiceRecord extends Component{
                     }
                 },
                 {
+                    title: "技术端满意度",
+                    dataIndex: "techSatisfaction",
+                    key: "techSatisfaction",
+                    render: (text) => {
+                        //0 已投诉 1不满意 2一般满意 3非常满意
+                        return (
+                            <span>
+                                {
+                                    text === 0 ? '已投诉' :
+                                        text === 1 ? '不满意' :
+                                            text === 2 ? '一般满意' :
+                                                text === 3 ? '非常满意' : ''
+                                }
+                            </span>
+                        )
+                    }
+                },
+                {
+                    title: "业务端满意度",
+                    dataIndex: "businessSatisfaction",
+                    key: "businessSatisfaction",
+                    render: (text) => {
+                        return (
+                            <span>
+                                {
+                                    text === 0 ? '已投诉' :
+                                        text === 1 ? '不满意' :
+                                            text === 2 ? '一般满意' :
+                                                text === 3 ? '非常满意' : ''
+                                }
+                            </span>
+                            )
+                    }
+                },
+                {
                     title: "备注",
                     dataIndex: "remarks",
                     key: "remarks",
@@ -104,6 +139,8 @@ class CustomerServiceRecord extends Component{
             ],
             dataSource:[],
             releaseDate:'',
+            techSatisfaction:'',
+            businessSatisfaction:'',
             addWechat:'',
             wx:'',
             situation:'',
@@ -150,10 +187,10 @@ class CustomerServiceRecord extends Component{
             message.warning('请选择续签情况');
             return;
         }
-        if(this.state.situation === 6 && !this.state.releaseDate){
-            message.warning('请选择续签时间');
-            return;
-        }
+        // if(this.state.situation === 6 && !this.state.releaseDate){
+        //     message.warning('请选择续签时间');
+        //     return;
+        // }
         if(!this.state.comment){
             message.warning('请填写备注');
             return;
@@ -171,6 +208,8 @@ class CustomerServiceRecord extends Component{
                 wechat:this.state.wx,
                 renewal:this.state.situation,
                 renewalTimes:this.state.releaseDate,
+                techSatisfaction:this.state.techSatisfaction,
+                businessSatisfaction:this.state.businessSatisfaction,
                 remarks:this.state.comment,
                 signProjectId:this.state.signProjectId.join(','),
                 signProject:this.state.signProject.join(','),
@@ -213,6 +252,8 @@ class CustomerServiceRecord extends Component{
                         let signProject = info.signProject ? info.signProject.split(',') : [];
                         this.setState({
                             releaseDate:info.renewalTimes,
+                            techSatisfaction:info.techSatisfaction,
+                            businessSatisfaction:info.businessSatisfaction,
                             addWechat:info.addWechat,
                             wx:info.wechat,
                             situation:info.renewal,
@@ -307,7 +348,7 @@ class CustomerServiceRecord extends Component{
                 <Spin spinning={this.state.listLoading}>
                     <div style={{paddingTop:"20px"}}>
                         <div style={{display:'flex',alignItems:"center",paddingBottom:"10px"}}>
-                            <div style={{fontWeight:"bolder",paddingRight:'10px'}}>添加客服微信:</div>
+                            <div style={{fontWeight:"bolder",paddingRight:'10px'}}><span style={{color:'#f00'}}>*</span>添加客服微信:</div>
                             <RadioGroup
                                 value={this.state.addWechat}
                                 onChange={(e) => {
@@ -328,7 +369,7 @@ class CustomerServiceRecord extends Component{
                             </RadioGroup>
                         </div>
                         {this.state.addWechat === 1 ? <div style={{display:'flex',alignItems:"center",paddingBottom:"10px"}}>
-                            <div style={{fontWeight:"bolder",paddingRight:'10px'}}>微信号</div>
+                            <div style={{fontWeight:"bolder",paddingRight:'10px'}}><span style={{color:'#f00'}}>*</span>微信号</div>
                             <Input
                                 placeholder='请输入微信号'
                                 style={{ width: 150, marginRight: 10 }}
@@ -338,7 +379,7 @@ class CustomerServiceRecord extends Component{
                                 }}/>
                         </div> : null}
                         <div style={{display:'flex',alignItems:"center",paddingBottom:"10px"}}>
-                            <div style={{fontWeight:"bolder",paddingRight:'10px'}}>续签情况:</div>
+                            <div style={{fontWeight:"bolder",paddingRight:'10px'}}><span style={{color:'#f00'}}>*</span>续签情况:</div>
                             <Select
                                 placeholder="续签情况"
                                 style={{ width: 250, marginRight: 10 }}
@@ -354,13 +395,13 @@ class CustomerServiceRecord extends Component{
                                     }
                                 }}
                             >
-                                <Option value={6}>是,已续签/复审,续签时间、续签项目</Option>
-                                <Option value={5}>否,客户考虑中,已报价</Option>
-                                <Option value={4}>否,客户考虑中,无报价</Option>
-                                <Option value={3}>否,企业不打算申报/注销</Option>
-                                <Option value={2}>否,企业自己申报</Option>
-                                <Option value={1}>否,企业已签其他机构</Option>
-                                <Option value={0}>其他</Option>
+                                <Option value={6}>已续签/复审、续签时间、续签项目</Option>
+                                <Option value={5}>待续签,已报价(客服维护中)</Option>
+                                <Option value={4}>待续签,未报价(客服维护中)</Option>
+                                <Option value={3}>企业不打算申报/注销</Option>
+                                <Option value={2}>企业自己申报</Option>
+                                <Option value={1}>企业已签其他机构</Option>
+                                <Option value={0}>未联系上当前联系人</Option>
                             </Select>
                         </div>
                         {this.state.situation === 6 ? <div style={{display:'flex',alignItems:"center",paddingBottom:"10px"}}>
@@ -442,7 +483,33 @@ class CustomerServiceRecord extends Component{
                             </Spin>
                         </div> : null}
                         <div style={{display:'flex',paddingBottom:"10px"}}>
-                            <div style={{fontWeight:"bolder",paddingRight:'10px'}}>备注:</div>
+                            <div style={{fontWeight:"bolder",paddingRight:'10px'}}>技术端满意度:</div>
+                            <Radio.Group onChange={(e)=>{
+                                this.setState({
+                                    techSatisfaction:e.target.value
+                                })
+                            }} value={this.state.techSatisfaction}>
+                                <Radio value={3}>非常满意</Radio>
+                                <Radio value={2}>一般满意</Radio>
+                                <Radio value={1}>不满意</Radio>
+                                <Radio value={0}>已投诉</Radio>
+                            </Radio.Group>
+                        </div>
+                        <div style={{display:'flex',paddingBottom:"10px"}}>
+                            <div style={{fontWeight:"bolder",paddingRight:'10px'}}>业务端满意度:</div>
+                            <Radio.Group onChange={(e)=>{
+                                this.setState({
+                                    businessSatisfaction:e.target.value
+                                })
+                            }} value={this.state.businessSatisfaction}>
+                                <Radio value={3}>非常满意</Radio>
+                                <Radio value={2}>一般满意</Radio>
+                                <Radio value={1}>不满意</Radio>
+                                <Radio value={0}>已投诉</Radio>
+                            </Radio.Group>
+                        </div>
+                        <div style={{display:'flex',paddingBottom:"10px"}}>
+                            <div style={{fontWeight:"bolder",paddingRight:'10px'}}><span style={{color:'#f00'}}>*</span>备注:</div>
                             <div style={{position:"relative"}}>
                                 <Input
                                     placeholder={'请输入备注'}

+ 32 - 14
js/component/manageCenter/customerService/administration/followUp.jsx

@@ -176,13 +176,13 @@ class FollowUp extends Component{
                     key: "renewal",
                     width: 80,
                     render: (text,record) => {
-                        let str = text === 0 ? '其他' :
-                            text === 1 ? '否,企业已签其他机构' :
-                                text === 2 ? '否,企业自己申报' :
-                                    text === 3 ? '否,企业不打算申报/注销' :
-                                        text === 4 ? '否,客户考虑中,无报价' :
-                                            text === 5 ? '否,客户考虑中,已报价' :
-                                                text === 6 ? '是,已续签/复审,续签时间、续签项目('+record.renewalTimes+')' : ''
+                        let str = text === 0 ? '未联系上当前联系人' :
+                            text === 1 ? '企业已签其他机构' :
+                                text === 2 ? '企业自己申报' :
+                                    text === 3 ? '企业不打算申报/注销' :
+                                        text === 4 ? '待续签,未报价(客服维护中)' :
+                                            text === 5 ? '待续签,已报价(客服维护中)' :
+                                                text === 6 ? '已续签/复审、续签时间、续签项目('+record.renewalTimes+')' : ''
                         return (
                             <Tooltip placement="topLeft" title={str}>
                                 <div style={{
@@ -196,6 +196,24 @@ class FollowUp extends Component{
                     }
                 },
                 {
+                    title: "满意度(技术/业务)",
+                    dataIndex: "techSatisfaction",
+                    key: "techSatisfaction",
+                    render: (text,record) => (
+                        (
+                            text === 0 ? '已投诉' :
+                                text === 1 ? '不满意' :
+                                    text === 2 ? '一般满意' :
+                                        text === 3 ? '非常满意' : '无'
+                        )
+                        +'/'+
+                        (record.businessSatisfaction === 0 ? '已投诉' :
+                            record.businessSatisfaction === 1 ? '不满意' :
+                                record.businessSatisfaction === 2 ? '一般满意' :
+                                    record.businessSatisfaction === 3 ? '非常满意' : '无')
+                    )
+                },
+                {
                     title: "备注",
                     dataIndex: "remarks",
                     key: "remarks",
@@ -472,13 +490,13 @@ class FollowUp extends Component{
                                 this.setState({ renewal: e });
                             }}
                         >
-                            <Option value={6}>是,已续签/复审,续签时间、续签项目</Option>
-                            <Option value={5}>否,客户考虑中,已报价</Option>
-                            <Option value={4}>否,客户考虑中,无报价</Option>
-                            <Option value={3}>否,企业不打算申报/注销</Option>
-                            <Option value={2}>否,企业自己申报</Option>
-                            <Option value={1}>否,企业已签其他机构</Option>
-                            <Option value={0}>其他</Option>
+                            <Option value={6}>已续签/复审、续签时间、续签项目</Option>
+                            <Option value={5}>待续签,已报价(客服维护中)</Option>
+                            <Option value={4}>待续签,未报价(客服维护中)</Option>
+                            <Option value={3}>企业不打算申报/注销</Option>
+                            <Option value={2}>企业自己申报</Option>
+                            <Option value={1}>企业已签其他机构</Option>
+                            <Option value={0}>未联系上当前联系人</Option>
                         </Select>
                         <span style={{ marginRight: "10px",marginBottom: "10px" }}>跟进时间 :</span>
                         <RangePicker

+ 118 - 64
js/component/manageCenter/index/content.jsx

@@ -14,6 +14,10 @@ const TabPane = Tabs.TabPane;
 const MessageModal = React.createClass({
     getInitialState() {
         return {
+            unreadData:[],
+            unreadDataType:'0',
+            dataSourceType:'1',
+            unreadDataIndex:0,
             newVisible: false,
             loading: false,
             categoryArr:[],
@@ -43,10 +47,6 @@ const MessageModal = React.createClass({
             },
             columns: [
                 {
-                    title: '编号',
-                    dataIndex: 'key',
-                    key: 'key'
-                }, {
                     title: '类型',
                     dataIndex: 'noticeType',
                     key: 'noticeType',
@@ -325,6 +325,7 @@ const MessageModal = React.createClass({
             data: {
                 pageNo: pageNo || 1,
                 pageSize: this.state.pagination.pageSize,
+                type:this.state.unreadDataType,
             }
         }).done((data) => {
             if (!data.data) {
@@ -356,7 +357,7 @@ const MessageModal = React.createClass({
             this.state.pagination.total = data.data.totalCount;
             this.setState({
                 dataSource: this.state.data,
-                pagination: this.state.pagination
+                pagination: this.state.pagination,
             });
         }).always(function () {
             this.setState({
@@ -375,46 +376,36 @@ const MessageModal = React.createClass({
             crossDomain: false,
             url: globalConfig.context + "/api/admin/notice/unread",
             data: {
-                pageNo: pageNo || 1,
-                pageSize: this.state.UnreadPagination.pageSize,
+
             }
         }).done((data) => {
-            if (!data.data) {
-                if (data.error && data.error.length) {
-                    message.warning(data.error[0].message);
-                    return;
-                };
-            };
-            this.state.data = [];
-            for (let i = 0; i < data.data.list.length; i++) {
-                let thisdata = data.data.list[i];
-                this.state.data.push({
-                    key: i + 1,
-                    id: thisdata.id,
-                    rid: thisdata.rid,
-                    uid: thisdata.uid,
-                    aid: thisdata.aid,
-                    noticeType: thisdata.noticeType,
-                    year: thisdata.year,
-                    noticeTypeName: thisdata.noticeTypeName,
-                    content: thisdata.content,
-                    createTime: thisdata.createTime,
-                    createTimeFormattedDate: thisdata.createTimeFormattedDate,
-                    principle: thisdata.principle,
-                    unitName: thisdata.unitName
-                });
-            };
-            this.state.UnreadPagination.current = data.data.pageNo;
-            this.state.UnreadPagination.total = data.data.totalCount;
-            if(data.data.list.length) {
+            if (data.error && data.error.length) {
+                message.warning(data.error[0].message);
+                return;
+            }else{
+                let arr = data.data.filter(v=>v.list.length > 0)
+                if(arr.length) {
+                    this.setState({
+                        newVisible: true
+                    });
+                }
+                let index = data.data.findIndex(v=>v.list.length > 0);
+                if(index >= 0){
+                    data.data[index].isRead = true;
+                    this.setState({
+                        unreadDataType: index ? data.data[index]['id']+'' : '0',
+                        unreadDataIndex:index,
+                    });
+                }else{
+                    this.setState({
+                        unreadDataType: data.data[0]['id']+'',
+                        unreadDataIndex:'0',
+                    });
+                }
                 this.setState({
-                  newVisible: true
+                    unreadData: data.data,
                 });
             }
-            this.setState({
-                unreadData: this.state.data,
-                UnreadPagination: this.state.UnreadPagination
-            });
         }).always(function () {
             this.setState({
                 loading: false,
@@ -422,14 +413,20 @@ const MessageModal = React.createClass({
         }.bind(this));
     },
     componentWillMount() {
-        this.loadReaded();
+        // this.loadReaded();
         this.loadUnread();
         this.mainMenu();
     },
     handleOk() {
-        this.setState({
-          newVisible: false
-        });
+        let arr = this.state.unreadData.filter(v=>v.list.length > 0 && !v.isRead);
+        if(arr.length > 0){
+            message.warning('还存在未读消息,请查看后再关闭当前页面!');
+            return;
+        }else{
+            this.setState({
+                newVisible: false
+            });
+        }
     },
     render() {
         return (
@@ -438,22 +435,56 @@ const MessageModal = React.createClass({
               <span>信息中心</span>
             </div>
             <Spin spinning={this.state.loading} className="spin-box">
-              <Tabs defaultActiveKey="1">
-                <Tabs.TabPane tab="新信息" key="1">
-                  <Table
-                    columns={this.state.columns}
-                    dataSource={this.state.unreadData}
-                    pagination={this.state.UnreadPagination}
-                  />
-                </Tabs.TabPane>
-                <Tabs.TabPane tab="已读信息" key="2">
-                  <Table
-                    columns={this.state.columns}
-                    dataSource={this.state.dataSource}
-                    pagination={this.state.pagination}
-                  />
-                </Tabs.TabPane>
+              <Tabs defaultActiveKey={this.state.unreadDataType} activeKey={this.state.unreadDataType} onChange={v=>{
+                  let index = this.state.unreadData.findIndex(d=>d.id == v);
+                  this.state.unreadData[index].isRead = true;
+                  this.setState({
+                      unreadDataIndex:index,
+                      unreadData:this.state.unreadData,
+                      unreadDataType:v
+                  },()=>{
+                      if(this.state.dataSourceType === '2'){
+                          this.loadReaded()
+                      }
+                  })
+              }}>
+                  {
+                      this.state.unreadData.map((v)=>(
+                          <Tabs.TabPane
+                              key={v.id+''}
+                              tab={<div>
+                                  {v.list.length === 0 || v.isRead ? null : <div style={{width:'8px',height:"8px",borderRadius:'8px',background:'#f00',position: 'absolute',right: '5px', top: '2px'}}/>}
+                                  {v.name}
+                              </div>
+                              }/>
+                      ))
+                  }
               </Tabs>
+                <Tabs defaultActiveKey="1" type="card" tabPosition='left' value={this.state.dataSourceType} onChange={(v)=>{
+                    this.setState({
+                        dataSourceType:v
+                    })
+                    if(v === '2'){
+                        this.loadReaded()
+                    }
+                }}>
+                    <Tabs.TabPane tab={'未读'} key="1">
+                        <Table
+                            bordered
+                            columns={this.state.columns}
+                            dataSource={this.state.unreadData[this.state.unreadDataIndex] ? this.state.unreadData[this.state.unreadDataIndex].list : []}
+                            pagination={false}
+                        />
+                    </Tabs.TabPane>
+                    <Tabs.TabPane tab="已读" key="2">
+                        <Table
+                            bordered
+                            columns={this.state.columns}
+                            dataSource={this.state.dataSource}
+                            pagination={this.state.pagination}
+                        />
+                    </Tabs.TabPane>
+                </Tabs>
             </Spin>
             <Modal
               maskClosable={false}
@@ -464,11 +495,34 @@ const MessageModal = React.createClass({
               closable={false}
               footer={null}
             >
-              <Table
-                columns={this.state.columns}
-                dataSource={this.state.unreadData}
-                pagination={false}
-              />
+                <Spin spinning={this.state.loading} className="spin-box">
+                    <Tabs defaultActiveKey={this.state.unreadDataType} activeKey={this.state.unreadDataType} onChange={v=>{
+                        let index = this.state.unreadData.findIndex(d=>d.id == v);
+                        this.state.unreadData[index].isRead = true;
+                        this.setState({
+                            unreadDataIndex:index,
+                            unreadData:this.state.unreadData,
+                            unreadDataType:v
+                        })
+                    }}>
+                        {
+                            this.state.unreadData.map((v)=>(
+                                <Tabs.TabPane
+                                    key={v.id+''}
+                                    tab={<div>
+                                        {v.list.length === 0 || v.isRead ? null : <div style={{width:'8px',height:"8px",borderRadius:'8px',background:'#f00',position: 'absolute',right: '5px', top: '2px'}}/>}
+                                        {v.name}
+                                    </div>
+                                    }/>
+                            ))
+                        }
+                    </Tabs>
+                    <Table
+                        columns={this.state.columns}
+                        dataSource={this.state.unreadData[this.state.unreadDataIndex] ? this.state.unreadData[this.state.unreadDataIndex].list : []}
+                        pagination={false}
+                    />
+                </Spin>
               <Button
                 onClick={this.handleOk}
                 type={"primary"}

+ 1 - 1
js/component/manageCenter/order/orderNew/billing.jsx

@@ -1360,7 +1360,7 @@ const MyService = Form.create()(
       this.departmentList();
       this.loadData();
       let data = localStorage.getItem("newData");
-      if (data != "{}" && data) {
+      if (data != "{}" && data && data.toString() !== '[object Object]') {
         var newData = JSON.parse(data);
         this.tableRowClick(newData);
       }

+ 107 - 64
js/component/manageCenter/topTab.jsx

@@ -12,6 +12,10 @@ const TabPane = Tabs.TabPane;
 const MessageModal = React.createClass({
     getInitialState() {
         return {
+            unreadData:[],
+            unreadDataType:'0',
+            dataSourceType:'1',
+            unreadDataIndex:0,
             visible: false,
             loading: false,
             pagination: {
@@ -41,10 +45,6 @@ const MessageModal = React.createClass({
             categoryArr:[],
             columns: [
                 {
-                    title: '编号',
-                    dataIndex: 'key',
-                    key: 'key'
-                }, {
                     title: '类型',
                     dataIndex: 'noticeType',
                     key: 'noticeType',
@@ -123,6 +123,7 @@ const MessageModal = React.createClass({
             data: {
                 pageNo: pageNo || 1,
                 pageSize: this.state.pagination.pageSize,
+                type:this.state.unreadDataType,
             }
         }).done((data) => {
             if (!data.data) {
@@ -173,41 +174,36 @@ const MessageModal = React.createClass({
             crossDomain: false,
             url: globalConfig.context + "/api/admin/notice/unread",
             data: {
-                pageNo: pageNo || 1,
-                pageSize: this.state.UnreadPagination.pageSize,
+
             }
         }).done((data) => {
-            if (!data.data) {
-                if (data.error && data.error.length) {
-                    message.warning(data.error[0].message);
-                    return;
-                };
-            };
-            this.state.data = [];
-            for (let i = 0; i < data.data.list.length; i++) {
-                let thisdata = data.data.list[i];
-                this.state.data.push({
-                    key: i + 1,
-                    id: thisdata.id,
-                    rid: thisdata.rid,
-                    uid: thisdata.uid,
-                    aid: thisdata.aid,
-                    noticeType: thisdata.noticeType,
-                    year: thisdata.year,
-                    noticeTypeName: thisdata.noticeTypeName,
-                    content: thisdata.content,
-                    createTime: thisdata.createTime,
-                    createTimeFormattedDate: thisdata.createTimeFormattedDate,
-                    principle: thisdata.principle,
-                    unitName: thisdata.unitName
+            if (data.error && data.error.length) {
+                message.warning(data.error[0].message);
+                return;
+            }else{
+                let arr = data.data.filter(v=>v.list.length > 0)
+                if(arr.length) {
+                    this.setState({
+                        newVisible: true
+                    });
+                }
+                let index = data.data.findIndex(v=>v.list.length > 0);
+                if(index >= 0){
+                    data.data[index].isRead = true;
+                    this.setState({
+                        unreadDataType: index ? data.data[index]['id']+'' : '0',
+                        unreadDataIndex:index,
+                    });
+                }else{
+                    this.setState({
+                        unreadDataType: data.data[0]['id']+'',
+                        unreadDataIndex:'0',
+                    });
+                }
+                this.setState({
+                    unreadData: data.data,
                 });
-            };
-            this.state.UnreadPagination.current = data.data.pageNo;
-            this.state.UnreadPagination.total = data.data.totalCount;
-            this.setState({
-                unreadData: this.state.data,
-                UnreadPagination: this.state.UnreadPagination
-            });
+            }
         }).always(function () {
             this.setState({
                 loading: false
@@ -222,15 +218,27 @@ const MessageModal = React.createClass({
         this.state.visible = nextProps.showDesc
     },
     handleOk() {
-        this.setState({
-            visible: false,
-        });
+        let arr = this.state.unreadData.filter(v=>v.list.length > 0 && !v.isRead);
+        if(arr.length > 0){
+            message.warning('还存在未读消息,请查看后再关闭当前页面!');
+            return;
+        }else{
+            this.setState({
+                visible: false,
+            });
+        }
         this.props.closeDesc(false, true);
     },
     handleCancel(e) {
-        this.setState({
-            visible: false,
-        });
+        let arr = this.state.unreadData.filter(v=>v.list.length > 0 && !v.isRead);
+        if(arr.length > 0){
+            message.warning('还存在未读消息,请查看后再关闭当前页面!');
+            return;
+        }else{
+            this.setState({
+                visible: false,
+            });
+        }
         this.props.closeDesc(false, true);
     },
     closeDesc(){
@@ -250,22 +258,58 @@ const MessageModal = React.createClass({
                         onOk={this.handleOk} onCancel={this.handleCancel}
                         width='1000px' footer=''
                     >
-                        <Tabs defaultActiveKey="1">
-                            <Tabs.TabPane tab="新信息" key="1">
-                                <Table columns={this.state.columns}
-                                    dataSource={this.state.unreadData}
-                                    bordered
-                                    size="small"
-                                    pagination={this.state.UnreadPagination} />
-                            </Tabs.TabPane>
-                            <Tabs.TabPane tab="已读信息" key="2">
-                                <Table columns={this.state.columns}
-                                    dataSource={this.state.dataSource}
-                                    bordered
-                                    size="small"
-                                    pagination={this.state.pagination} />
-                            </Tabs.TabPane>
-                        </Tabs>
+                        <Spin spinning={this.state.loading} className="spin-box">
+                            <Tabs defaultActiveKey={this.state.unreadDataType} activeKey={this.state.unreadDataType} onChange={v=>{
+                                let index = this.state.unreadData.findIndex(d=>d.id == v);
+                                this.state.unreadData[index].isRead = true;
+                                this.setState({
+                                    unreadDataIndex:index,
+                                    unreadData:this.state.unreadData,
+                                    unreadDataType:v
+                                },()=>{
+                                    if(this.state.dataSourceType === '2'){
+                                        this.loadReaded()
+                                    }
+                                })
+                            }}>
+                                {
+                                    this.state.unreadData.map((v)=>(
+                                        <Tabs.TabPane
+                                            key={v.id+''}
+                                            tab={<div>
+                                                {v.list.length === 0 || v.isRead ? null : <div style={{width:'8px',height:"8px",borderRadius:'8px',background:'#f00',position: 'absolute',right: '5px', top: '2px'}}/>}
+                                                {v.name}
+                                            </div>
+                                            }/>
+                                    ))
+                                }
+                            </Tabs>
+                            <Tabs defaultActiveKey="1" type="card" tabPosition='left' value={this.state.dataSourceType} onChange={(v)=>{
+                                this.setState({
+                                    dataSourceType:v
+                                })
+                                if(v === '2'){
+                                    this.loadReaded()
+                                }
+                            }}>
+                                <Tabs.TabPane tab={'未读'} key="1">
+                                    <Table
+                                        bordered
+                                        columns={this.state.columns}
+                                        dataSource={this.state.unreadData[this.state.unreadDataIndex] ? this.state.unreadData[this.state.unreadDataIndex].list : []}
+                                        pagination={false}
+                                    />
+                                </Tabs.TabPane>
+                                <Tabs.TabPane tab="已读" key="2">
+                                    <Table
+                                        bordered
+                                        columns={this.state.columns}
+                                        dataSource={this.state.dataSource}
+                                        pagination={this.state.pagination}
+                                    />
+                                </Tabs.TabPane>
+                            </Tabs>
+                        </Spin>
                     </Modal>
                 </Spin>
                 <FollowDetail
@@ -572,12 +616,11 @@ const TopTab = React.createClass({
                     <span className="acc-top-user-toindex"><a href={jumpUrl||'' + "/portal/index.html"}>返回首页</a></span>
                     {this.props.active ? <a onClick={() => { this.setState({ messageModalShow: true }); }} className="user-badge">
                         <Icon type="mail" />
-                        {(() => {
-                            if (!window.showSystem && this.state.badge) {
-                                return <Badge status="processing" />
-                            }
-                        })()}
-                    </a> : <div></div>}
+                        {
+                            !window.showSystem && this.state.badge ?
+                                <Badge status="processing" /> : null
+                        }
+                    </a> : null}
                 </div>
                 <div className="acc-index">
                     <div className="acc-index-imgbox">

+ 26 - 1
js/component/tools.js

@@ -106,7 +106,8 @@ import {
   contractChangeStatus,
   typeList,
   channelAllocationStatus,
-  transferType
+  transferType,
+  messageReminderStart
 } from "./dataDic.js";
 
 import { provinceList } from './NewDicProvinceList.js';
@@ -1120,6 +1121,30 @@ module.exports = {
       }
     }
   },
+  //获取消息提醒状态
+  getMessageReminderStart: function (e,isTag) {
+    if (!isNaN(parseInt(e))) {
+      let theType = "";
+      let color = "";
+      messageReminderStart.map(function (item) {
+        if (item.value == e) {
+          theType = item.key;
+          color = item.color;
+        }
+      });
+      if(isTag){
+        return <Tag color={color}>{theType}</Tag>
+      }else{
+        return theType;
+      }
+    }else{
+      if(isTag){
+        return <Tag color='#000'>未知</Tag>
+      }else{
+        return '未知';
+      }
+    }
+  },
   //获取分配状态名称
   getTransferType:function (id){
     if (!isNaN(parseInt(id))) {

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "afanti",
-  "version": "1.1.73",
+  "version": "1.1.74",
   "description": "",
   "main": "index.js",
   "scripts": {