Ver código fonte

Merge branch 'master' of http://git.zthymaoyi.com/wangchao/businessCard

achao 2 anos atrás
pai
commit
979a1f936d

+ 11 - 0
unimall-app-api/src/main/java/com/iotechn/unimall/app/api/commonUser/CommonUserServiceImpl.java

@@ -14,11 +14,13 @@ import com.iotechn.unimall.core.util.GeneratorUtil;
 import com.iotechn.unimall.core.util.SHA1Util;
 import com.iotechn.unimall.data.component.CacheComponent;
 import com.iotechn.unimall.data.domain.CardClassifyInfo;
+import com.iotechn.unimall.data.domain.CardNewsInfo;
 import com.iotechn.unimall.data.domain.UserDO;
 import com.iotechn.unimall.data.domain.CommonUserInfo;
 import com.iotechn.unimall.data.dto.UserDTO;
 import com.iotechn.unimall.data.enums.UserLoginType;
 import com.iotechn.unimall.data.mapper.CardClassifyInfoMapper;
+import com.iotechn.unimall.data.mapper.CardNewsInfoMapper;
 import com.iotechn.unimall.data.mapper.UserMapper;
 import com.iotechn.unimall.data.util.SessionUtil;
 import okhttp3.OkHttpClient;
@@ -57,6 +59,8 @@ public class CommonUserServiceImpl implements CommonUserService {
     private CommonUserInfoMapper commonUserInfoMapper;
     @Autowired
     private CardClassifyInfoMapper cardClassifyInfoMapper;
+    @Autowired
+    private CardNewsInfoMapper cardNewsInfoMapper;
 
 
     @Autowired
@@ -106,6 +110,13 @@ public class CommonUserServiceImpl implements CommonUserService {
                     cardClassifyInfo.setCircleName("默认分类");
                     cardClassifyInfoMapper.insert(cardClassifyInfo);
                 }
+                CardNewsInfo cardNewsInfo=new CardNewsInfo();
+                cardNewsInfo.setNewsTitle("系统消息");
+                cardNewsInfo.setNewsContent("欢迎使用【名片box】,添加名片、加入圈子、扫码交换、一键转发、证件管理等多种实用功能等你来探索!");
+                cardNewsInfo.setReceiveId(newUserDO.getId());
+                cardNewsInfo.setGmtCreate(now);
+                cardNewsInfo.setGmtUpdate(now);
+                cardNewsInfoMapper.insert(cardNewsInfo);
             } else {
                 newUserDO = list.get(0);
             }

+ 1 - 1
xiaochengxu/App.vue

@@ -20,7 +20,7 @@
 	@import "@/uni_modules/uview-ui/index.scss";
 	@import '@/uni_modules/uni-scss/index.scss';
 	@import '@/static/styles/index.scss';
-	@import '@/static/icons/iconfont.css';
+	@import '@/style/icons/iconfont.css';
 	// 设置整个项目的背景色
 	page {
 		background-color: #f5f5f5;

+ 7 - 1
xiaochengxu/components/zhangyuhao-poster/Poster.vue

@@ -5,6 +5,8 @@
 </template>
 <!-- 
 list参数说明:
+use:用途
+imageType:用于区分图片是本地图片还是网络图片本地图片需要取
  图片渲染:
  type: 'image',
  x: X轴位置,
@@ -283,7 +285,11 @@ list参数说明:
 					console.log(this.list[i])
 					current.index = i
 					/* 如果是文本直接放入队列 */
-					if (current.type === 'text' || current.type === 'textarea' || current.type === 'image' && current.use !== 'bg' && current.use !== 'head') {
+					if (current.type === 'text' || current.type === 'textarea' || current.type === 'image' && current.use !== 'bg' ) {
+						this.drawPathQueue.push(current)
+						continue
+					}
+					if( current.use === 'head'&&current.imageType === 'wl'){
 						this.drawPathQueue.push(current)
 						continue
 					}

+ 2 - 2
xiaochengxu/config/index.js

@@ -1,8 +1,8 @@
 const dev = {
 	// baseUrlNew: 'http://192.168.110.72:8182',
-	// baseUrlNew: 'http://192.168.110.138:8182',
+	baseUrlNew: 'http://192.168.110.138:8182',
 	// baseUrlNew: 'http://192.168.110.82:8182',
-	baseUrlNew: 'https://cardapi.eliangeyun.com',
+	// baseUrlNew: 'https://cardapi.eliangeyun.com',
 	h5Appid: 'wxb66b599f7f61b46f',
 	debug: false
 }

+ 1 - 0
xiaochengxu/pages/cardHolder/cardHolder.vue

@@ -633,6 +633,7 @@
 						path: this.currectData.headSculpture?this.currectData.headSculpture:'../../static/imgs/card/defaulthead.png',
 						shape: 'circle',
 						use: 'head',
+						imageType:this.currectData.headSculpture?'wl':'bd',
 						x: 30,
 						y: 30,
 						width: 100,

+ 11 - 2
xiaochengxu/pages/circle/createCirclce.vue

@@ -60,7 +60,6 @@
 				value: '',
 				show:false,
 				cardList:[],
-				
 				labelList: [{
 						labelName: '',
 					},
@@ -68,6 +67,7 @@
 						labelName: '',
 					}
 				],
+				list:[],
 				formData: {
 					circleName: '',
 					circleLabel: [],
@@ -97,6 +97,7 @@
 			}).then(res => {
 				uni.hideLoading()
 				this.cardList = [res.data.items]
+				this.list = res.data.items
 				this.formData.cardBusiness  = res.data.items[0].cardBusiness
 			})
 		},
@@ -109,7 +110,15 @@
 				console.log(this.labelList)
 			},
 			cardShow(){
-				this.show=true
+				if(this.list.length>0){
+					this.show=true
+				}else{
+					this.$refs.uToast.show({
+						type: 'error',
+						message: '暂无名片!',
+					})
+				}
+				
 			},
 			change(e) {
 				console.log('change', e);

+ 97 - 42
xiaochengxu/pages/mySet/lookCard.vue

@@ -1,14 +1,20 @@
 <template>
 	<view>
 		<view v-for='(item,index) in cardList' class="">
-			{{item.certificateName}}
-			<text v-if='item.personNo'>({{item.personNo1}})</text>
-			<u-icon v-if='item.personNo' @click='clip(0,item)' name="file-text-fill" color="#2979ff" size="28"></u-icon>
-			<text v-if='item.bankNo'>({{item.bankNo1}})</text>
-			<u-icon v-if='item.bankNo' @click='clip(1,item)' name="file-text-fill" color="#2979ff" size="28"></u-icon>
-			<view @click='imageOCR(item)'>{{text}}</view>
-			<image  :src="item.certificateImage" mode=""></image>
+			<view class='flex justify-space-between'>
+				<view>{{item.certificateName}}</view>
+				<view v-if='item.personNo'>({{item.personNo1}})</view>
+				<u-icon v-if='item.personNo' @click='clip(0,item)' name="file-text-fill" color="#2979ff" size="28"></u-icon>
+				<text v-if='item.bankNo'>({{item.bankNo1}})</text>
+				<u-icon v-if='item.bankNo' @click='clip(1,item)' name="file-text-fill" color="#2979ff" size="28"></u-icon>
+				<view v-if='!item.personNo&&!item.bankNo' :class='countdownTime==0?"finished":"unfinished"' @click='imageOCR(item,index)'>{{text}}</view>
+			</view>
+			<view style='text-align:center;' class="">
+				<image style='width:360px;height:190px;border-radius:20rpx;'  :src="item.certificateImage" mode=""></image>
+			</view>
+			
 		</view>
+		<u-toast ref="uToast"></u-toast>
 		<u-picker @cancel='show=false' @confirm='pickerConfirm' title='识别类型' :show="show" :columns="columns"></u-picker>
 	</view>
 </template>
@@ -19,61 +25,93 @@
 			return {
 				cardList:[],
 				show:false,
+				countdownTime:0,
 				currectData:{},
+				index:0,
+				columns: [
+					['识别身份证号', '识别银行卡号']
+				],
 				text:'识别号码'
 			}
 		},
 		onLoad(options) {
-			this.cardList=options.cardList
+			console.log(11111)
+			this.cardList=JSON.parse(options.dataList);
+			console.log(this.cardList,11111111)
 		},
 		methods: {
-			imageOCR(item){
+			clip(status, item) {
+				uni.setClipboardData({
+					data: status == 1 ? item.bankNo : item.personNo, // e是你要保存的内容
+					success: function() {
+						uni.showToast({
+							title: '复制成功',
+							icon: 'none'
+						})
+					}
+				})
+			},
+			imageOCR(item,index){
 				this.currectData=item
+				this.index=index
 				this.show=true
 			},
-			getCountdownTime(e) {
+			getCountdownTime() {
 				this.countdownTime = 60
 				let timer = setInterval(() => {
 					this.countdownTime--;
+					this.text='识别号码('+this.countdownTime+'s)'
 					if (this.countdownTime < 1) {
 						clearInterval(timer)
 						this.countdownTime = 0
-						uni.showLoading({
-								title: '数据加载中',
-								mask:true
-							})
-						var type='',type1=''
-						if(e.value[0]=='识别身份证号'){
-							type='admin.unimall.certificateManagementInfo'
-							type1='personShibie'
-						}else if(e.value[0]=='识别银行卡号'){
-							type='admin.unimall.certificateManagementInfo'
-							type1='bankShibie'
-						}
-						this.$request.baseRequest(type, type1,{certificateImage:this.currectData.certificateImage}, failres => {
-							console.log('res+++++', failres.errmsg)
-							this.$refs.uToast.show({
-								type: 'error',
-								message: failres.errmsg,
-							})
-							uni.hideLoading()
-						}).then(res => {
-							console.log(res.data)
-							this.$refs.uToast.show({
-								type: 'success',
-								message: '识别成功',
-							})
-							uni.hideLoading()
-							this.credentials=res.data
-							this.credentialsShow=true
-						})		
+						this.text='识别号码'
+						
 					}
 				}, 1000)
 			},
 			pickerConfirm(e){
 				
 				this.show=false
-				this.getCountdownTime(e)
+				
+				if(this.countdownTime==0){
+					this.getCountdownTime()
+					uni.showLoading({
+							title: '数据加载中',
+							mask:true
+						})
+					var type='',type1=''
+					if(e.value[0]=='识别身份证号'){
+						type='admin.unimall.certificateManagementInfo'
+						type1='personShibie'
+					}else if(e.value[0]=='识别银行卡号'){
+						type='admin.unimall.certificateManagementInfo'
+						type1='bankShibie'
+					}
+					this.$request.baseRequest(type, type1,{certificateImage:this.currectData.certificateImage}, failres => {
+						console.log('res+++++', failres.errmsg)
+						this.$refs.uToast.show({
+							type: 'error',
+							message: failres.errmsg,
+						})
+						uni.hideLoading()
+					}).then(res => {
+						console.log(res.data.recPersonNo,res.data.bankNo)
+						this.$refs.uToast.show({
+							type: 'success',
+							message: '识别成功',
+						})
+						uni.hideLoading()
+						if(e.value[0]=='识别身份证号'){
+							this.cardList[this.index].personNo=res.data.recPersonNo
+							this.cardList[this.index].personNo1 = '*' + (this.cardList[this.index].personNo.substring(this.cardList[this.index].personNo.length - 4))
+							
+						}else if(e.value[0]=='识别银行卡号'){
+							this.cardList[this.index].bankNo=res.data.bankNo
+							this.cardList[this.index].bankNo1 = '*' + (this.cardList[this.index].bankNo.substring(this.cardList[this.index].bankNo.length - 4))
+						}
+						this.credentialsShow=true
+					})		
+				}
 				console.log(e)
 				
 			},
@@ -81,6 +119,23 @@
 	}
 </script>
 
-<style>
-
+<style lang="scss" scoped>
+	.finished{
+		padding: 10rpx 14rpx;
+		text-align: center;
+		background: #112253;
+		border-radius: 10rpx;
+		font-size: 28rpx;
+		font-weight: bold;
+		color: #FFFFFF;
+	}
+	.unfinished{
+		padding: 10rpx 14rpx;
+		text-align: center;
+		background: rgba(17, 34, 83, 0.3);
+		border-radius: 10rpx;
+		font-size: 28rpx;
+		font-weight: bold;
+		color: #FFFFFF;
+	}
 </style>

+ 32 - 6
xiaochengxu/pages/mySet/myCard.vue

@@ -54,10 +54,12 @@
 						<u--input @input='certificateNameInput($event,item)' border="bottom" v-else v-model="item.certificateName" placeholder="输入证件名称"></u--input>
 						<view class="flex" v-if="item.editstatus">
 							<view @click='qxEdit(item)' :class="!item.editstatus?'edit':'finished'" style="margin:0 20rpx;">取消</view>
-							<view @click="del(item)" :class="!item.editstatus?'edit':'finished'" style="margin:0 20rpx 0 0;">删除</view>
 							<view @click='edit(item)' :class="!item.status?'edit':'finished'">完成</view>
 						</view>
-						<view @click='edit(item)' class="finished" v-else>编辑</view>
+						<view class="flex" v-if="!item.editstatus">
+							<view  @click="del(item)" :class="!item.editstatus?'edit':'finished'" style="margin:0 20rpx 0 0;">删除</view>
+							<view @click='edit(item)' class="finished" >编辑</view>
+						</view>
 					</view>
 					<view class="row2" v-if='!item.editstatus'>
 						<image @click='previewImage(item.certificateImage)'  :src="item.certificateImage" mode="aspectFill" class="img"></image>
@@ -71,7 +73,7 @@
 					</view>
 					<view v-else style='padding-left:20rpx;' >
 						<u-upload  @afterRead="afterRead" :fileList="fileList2" @delete="deletePic" name="2" multiple
-						:maxCount="1" height='190' width='360'>
+						:maxCount="1" height='190' width='350'>
 							<view class="">
 								123
 							</view>
@@ -177,11 +179,11 @@
 			let that = this;
 			//生成名片图片
 			let imageUrl = this.poster
-			console.log("imageUrl", this.shareimg)
+			console.log("imageUrl", uni.getStorageSync('checkedList'))
 			if (res.from === 'button') {
 				return {
 					title: '证件分享',
-					path: '/pages/mySet/lookCard',
+					path: '/pages/mySet/lookCard?dataList='+uni.getStorageSync('checkedList'),
 					imageUrl: this.shareimg,
 				};
 			}
@@ -370,7 +372,16 @@
 					})
 					return
 				}
-				uni.setStorageSync('checkedList', this.checkedList);
+				var arr=[]
+				for(var i=0;i<this.cardList.length;i++){
+					if(this.checkedList.findIndex((item) => {
+						return item == i
+					})!=-1){
+						arr.push(this.cardList[i])
+					}
+				}
+				console.log(arr,111)
+				uni.setStorageSync('checkedList', JSON.stringify(arr));
 				this.popupshow = true
 			},
 			imageOCR() {
@@ -841,4 +852,19 @@
 		font-size:50px;
 		color:#33CC00;
 	}
+	/deep/.u-upload
+	 {
+		 
+		.u-upload__deletable {
+			height:40rpx;
+			width:40rpx;
+			line-height:40rpx;
+		}
+		.u-upload__deletable__icon{
+			top:8rpx;
+		}
+		.uicon-close{
+			font-size:20px !important;
+		}
+	}
 </style>

+ 5 - 4
xiaochengxu/pages/mySet/myInfo.vue

@@ -11,7 +11,7 @@
 						:style="item.currentBackground?'background:url('+item.currentBackground+');background-size:100% 100%':''">
 						<view class="card-content style1" v-if="item.cuttentTemplate==1">
 							<view class="left">
-								<u--image :showLoading="true" :src="item.headSculpture" width="66px" height="66px"
+								<u--image :showLoading="true" :src="item.headSculpture?item.headSculpture:'/static/imgs/card/defaulthead.png'" width="66px" height="66px"
 									shape="circle"></u--image>
 							</view>
 							<view class="right">
@@ -67,7 +67,7 @@
 							<view class="left">
 								<u--image :showLoading="true" :src="item.headSculpture" width="66px" height="66px"
 									shape="circle" v-if="item.headSculpture"></u--image>
-								<u--image :showLoading="true" src="/./../static/imgs/card/defaulthead.png" width="66px"
+								<u--image :showLoading="true" src="/static/imgs/card/defaulthead.png" width="66px"
 									height="66px" shape="circle" v-else></u--image>
 							</view>
 						</view>
@@ -75,7 +75,7 @@
 							<view class="top">
 								<u--image :showLoading="true" :src="item.headSculpture" width="66px" height="66px"
 									shape="circle" v-if="item.headSculpture"></u--image>
-								<u--image :showLoading="true" src="/./../static/imgs/card/defaulthead.png" width="66px"
+								<u--image :showLoading="true" src="/static/imgs/card/defaulthead.png" width="66px"
 									height="66px" shape="circle" v-else></u--image>
 							</view>
 							<view class="bottom flex">
@@ -119,7 +119,7 @@
 								<view class="left">
 									<u--image :showLoading="true" :src="item.headSculpture" width="66px" height="66px"
 										shape="circle" v-if="item.headSculpture"></u--image>
-									<u--image :showLoading="true" src="/./../static/imgs/card/defaulthead.png" width="66px"
+									<u--image :showLoading="true" src="/static/imgs/card/defaulthead.png" width="66px"
 										height="66px" shape="circle" v-else></u--image>
 								</view>
 								<view class="right">
@@ -324,6 +324,7 @@
 						path: this.currectData.headSculpture?this.currectData.headSculpture:'../../static/imgs/card/defaulthead.png',
 						shape: 'circle',
 						use: 'head',
+						imageType:this.currectData.headSculpture?'wl':'bd',
 						x: 30,
 						y: 30,
 						width: 100,

+ 17 - 21
xiaochengxu/pages/mySet/mySet.vue

@@ -8,15 +8,10 @@
 				</view>
 			</view>
 			<view class="position">
-				<image v-if='list.length>1||list.length==0' @click='selectCard' src="../../static/imgs/mySet/share.png"
-					mode="widthFix" class="right-img">
-					<button v-if='list.length==1' class="shareBtn" type="default" data-name="shareBtn"
-						open-type="share">
-						<image src="../../static/imgs/mySet/share.png" mode="widthFix" class="right-img">
-						</image>
-					</button>
-					<image @click='selectCard1' src="../../static/imgs/mySet/ewm.png" mode="widthFix" class="right-img">
-					</image>
+				<image @click='selectCard' src="../../static/imgs/mySet/share.png" mode="widthFix" class="right-img">
+
+				<image @click='selectCard1' src="../../static/imgs/mySet/ewm.png" mode="widthFix" class="right-img">
+				</image>
 			</view>
 		</view>
 		<view class="content2">
@@ -61,7 +56,8 @@
 				cardList: [],
 				canvasData: {},
 				currectData: {},
-				list: [],
+				list:[],
+				index:0,
 				selectCode: '',
 				show: false,
 				clicknum: 0,
@@ -149,15 +145,6 @@
 				}).then(res => {
 					this.list = res.data.items
 					this.cardList = [res.data.items]
-					if (res.data.items.length > 0) {
-						if (!this.poster) {
-							this.cardChange({
-								value: this.cardList[[0]]
-							})
-						}
-
-					}
-
 				})
 			} else {
 				uni.switchTab({
@@ -231,8 +218,12 @@
 				this.popupshow = false
 			},
 			selectCard() {
-				if (this.cardList[0].length > 0) {
-					this.show = true
+
+				if(this.cardList[0].length>0){
+					this.index=0
+					this.cardChange({
+						value: this.cardList[[0]]
+					})
 				} else if (this.cardList[0].length == 0) {
 					this.$refs.uToast.show({
 						type: 'error',
@@ -260,6 +251,7 @@
 				this.isShowCode = true
 			},
 			cardChange(e) {
+				console.log(e)
 				this.currectData = e.value[0]
 				uni.showLoading({
 					title: '加载中',
@@ -280,6 +272,7 @@
 							'../../static/imgs/card/defaulthead.png',
 						shape: 'circle',
 						use: 'head',
+						imageType:this.currectData.headSculpture?'wl':'bd',
 						x: 30,
 						y: 30,
 						width: 100,
@@ -532,6 +525,9 @@
 				// 生成成功,会把临时路径在这里返回
 				this.poster = url;
 				console.log(url)
+				if(this.index==0){
+					this.show=true
+				}
 				// this.show=false
 				uni.hideLoading()
 			},

+ 0 - 539
xiaochengxu/static/icons/demo.css

@@ -1,539 +0,0 @@
-/* Logo 字体 */
-@font-face {
-  font-family: "iconfont logo";
-  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
-  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
-    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
-    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
-    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
-}
-
-.logo {
-  font-family: "iconfont logo";
-  font-size: 160px;
-  font-style: normal;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-/* tabs */
-.nav-tabs {
-  position: relative;
-}
-
-.nav-tabs .nav-more {
-  position: absolute;
-  right: 0;
-  bottom: 0;
-  height: 42px;
-  line-height: 42px;
-  color: #666;
-}
-
-#tabs {
-  border-bottom: 1px solid #eee;
-}
-
-#tabs li {
-  cursor: pointer;
-  width: 100px;
-  height: 40px;
-  line-height: 40px;
-  text-align: center;
-  font-size: 16px;
-  border-bottom: 2px solid transparent;
-  position: relative;
-  z-index: 1;
-  margin-bottom: -1px;
-  color: #666;
-}
-
-
-#tabs .active {
-  border-bottom-color: #f00;
-  color: #222;
-}
-
-.tab-container .content {
-  display: none;
-}
-
-/* 页面布局 */
-.main {
-  padding: 30px 100px;
-  width: 960px;
-  margin: 0 auto;
-}
-
-.main .logo {
-  color: #333;
-  text-align: left;
-  margin-bottom: 30px;
-  line-height: 1;
-  height: 110px;
-  margin-top: -50px;
-  overflow: hidden;
-  *zoom: 1;
-}
-
-.main .logo a {
-  font-size: 160px;
-  color: #333;
-}
-
-.helps {
-  margin-top: 40px;
-}
-
-.helps pre {
-  padding: 20px;
-  margin: 10px 0;
-  border: solid 1px #e7e1cd;
-  background-color: #fffdef;
-  overflow: auto;
-}
-
-.icon_lists {
-  width: 100% !important;
-  overflow: hidden;
-  *zoom: 1;
-}
-
-.icon_lists li {
-  width: 100px;
-  margin-bottom: 10px;
-  margin-right: 20px;
-  text-align: center;
-  list-style: none !important;
-  cursor: default;
-}
-
-.icon_lists li .code-name {
-  line-height: 1.2;
-}
-
-.icon_lists .icon {
-  display: block;
-  height: 100px;
-  line-height: 100px;
-  font-size: 42px;
-  margin: 10px auto;
-  color: #333;
-  -webkit-transition: font-size 0.25s linear, width 0.25s linear;
-  -moz-transition: font-size 0.25s linear, width 0.25s linear;
-  transition: font-size 0.25s linear, width 0.25s linear;
-}
-
-.icon_lists .icon:hover {
-  font-size: 100px;
-}
-
-.icon_lists .svg-icon {
-  /* 通过设置 font-size 来改变图标大小 */
-  width: 1em;
-  /* 图标和文字相邻时,垂直对齐 */
-  vertical-align: -0.15em;
-  /* 通过设置 color 来改变 SVG 的颜色/fill */
-  fill: currentColor;
-  /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
-      normalize.css 中也包含这行 */
-  overflow: hidden;
-}
-
-.icon_lists li .name,
-.icon_lists li .code-name {
-  color: #666;
-}
-
-/* markdown 样式 */
-.markdown {
-  color: #666;
-  font-size: 14px;
-  line-height: 1.8;
-}
-
-.highlight {
-  line-height: 1.5;
-}
-
-.markdown img {
-  vertical-align: middle;
-  max-width: 100%;
-}
-
-.markdown h1 {
-  color: #404040;
-  font-weight: 500;
-  line-height: 40px;
-  margin-bottom: 24px;
-}
-
-.markdown h2,
-.markdown h3,
-.markdown h4,
-.markdown h5,
-.markdown h6 {
-  color: #404040;
-  margin: 1.6em 0 0.6em 0;
-  font-weight: 500;
-  clear: both;
-}
-
-.markdown h1 {
-  font-size: 28px;
-}
-
-.markdown h2 {
-  font-size: 22px;
-}
-
-.markdown h3 {
-  font-size: 16px;
-}
-
-.markdown h4 {
-  font-size: 14px;
-}
-
-.markdown h5 {
-  font-size: 12px;
-}
-
-.markdown h6 {
-  font-size: 12px;
-}
-
-.markdown hr {
-  height: 1px;
-  border: 0;
-  background: #e9e9e9;
-  margin: 16px 0;
-  clear: both;
-}
-
-.markdown p {
-  margin: 1em 0;
-}
-
-.markdown>p,
-.markdown>blockquote,
-.markdown>.highlight,
-.markdown>ol,
-.markdown>ul {
-  width: 80%;
-}
-
-.markdown ul>li {
-  list-style: circle;
-}
-
-.markdown>ul li,
-.markdown blockquote ul>li {
-  margin-left: 20px;
-  padding-left: 4px;
-}
-
-.markdown>ul li p,
-.markdown>ol li p {
-  margin: 0.6em 0;
-}
-
-.markdown ol>li {
-  list-style: decimal;
-}
-
-.markdown>ol li,
-.markdown blockquote ol>li {
-  margin-left: 20px;
-  padding-left: 4px;
-}
-
-.markdown code {
-  margin: 0 3px;
-  padding: 0 5px;
-  background: #eee;
-  border-radius: 3px;
-}
-
-.markdown strong,
-.markdown b {
-  font-weight: 600;
-}
-
-.markdown>table {
-  border-collapse: collapse;
-  border-spacing: 0px;
-  empty-cells: show;
-  border: 1px solid #e9e9e9;
-  width: 95%;
-  margin-bottom: 24px;
-}
-
-.markdown>table th {
-  white-space: nowrap;
-  color: #333;
-  font-weight: 600;
-}
-
-.markdown>table th,
-.markdown>table td {
-  border: 1px solid #e9e9e9;
-  padding: 8px 16px;
-  text-align: left;
-}
-
-.markdown>table th {
-  background: #F7F7F7;
-}
-
-.markdown blockquote {
-  font-size: 90%;
-  color: #999;
-  border-left: 4px solid #e9e9e9;
-  padding-left: 0.8em;
-  margin: 1em 0;
-}
-
-.markdown blockquote p {
-  margin: 0;
-}
-
-.markdown .anchor {
-  opacity: 0;
-  transition: opacity 0.3s ease;
-  margin-left: 8px;
-}
-
-.markdown .waiting {
-  color: #ccc;
-}
-
-.markdown h1:hover .anchor,
-.markdown h2:hover .anchor,
-.markdown h3:hover .anchor,
-.markdown h4:hover .anchor,
-.markdown h5:hover .anchor,
-.markdown h6:hover .anchor {
-  opacity: 1;
-  display: inline-block;
-}
-
-.markdown>br,
-.markdown>p>br {
-  clear: both;
-}
-
-
-.hljs {
-  display: block;
-  background: white;
-  padding: 0.5em;
-  color: #333333;
-  overflow-x: auto;
-}
-
-.hljs-comment,
-.hljs-meta {
-  color: #969896;
-}
-
-.hljs-string,
-.hljs-variable,
-.hljs-template-variable,
-.hljs-strong,
-.hljs-emphasis,
-.hljs-quote {
-  color: #df5000;
-}
-
-.hljs-keyword,
-.hljs-selector-tag,
-.hljs-type {
-  color: #a71d5d;
-}
-
-.hljs-literal,
-.hljs-symbol,
-.hljs-bullet,
-.hljs-attribute {
-  color: #0086b3;
-}
-
-.hljs-section,
-.hljs-name {
-  color: #63a35c;
-}
-
-.hljs-tag {
-  color: #333333;
-}
-
-.hljs-title,
-.hljs-attr,
-.hljs-selector-id,
-.hljs-selector-class,
-.hljs-selector-attr,
-.hljs-selector-pseudo {
-  color: #795da3;
-}
-
-.hljs-addition {
-  color: #55a532;
-  background-color: #eaffea;
-}
-
-.hljs-deletion {
-  color: #bd2c00;
-  background-color: #ffecec;
-}
-
-.hljs-link {
-  text-decoration: underline;
-}
-
-/* 代码高亮 */
-/* PrismJS 1.15.0
-https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
-/**
- * prism.js default theme for JavaScript, CSS and HTML
- * Based on dabblet (http://dabblet.com)
- * @author Lea Verou
- */
-code[class*="language-"],
-pre[class*="language-"] {
-  color: black;
-  background: none;
-  text-shadow: 0 1px white;
-  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
-  text-align: left;
-  white-space: pre;
-  word-spacing: normal;
-  word-break: normal;
-  word-wrap: normal;
-  line-height: 1.5;
-
-  -moz-tab-size: 4;
-  -o-tab-size: 4;
-  tab-size: 4;
-
-  -webkit-hyphens: none;
-  -moz-hyphens: none;
-  -ms-hyphens: none;
-  hyphens: none;
-}
-
-pre[class*="language-"]::-moz-selection,
-pre[class*="language-"] ::-moz-selection,
-code[class*="language-"]::-moz-selection,
-code[class*="language-"] ::-moz-selection {
-  text-shadow: none;
-  background: #b3d4fc;
-}
-
-pre[class*="language-"]::selection,
-pre[class*="language-"] ::selection,
-code[class*="language-"]::selection,
-code[class*="language-"] ::selection {
-  text-shadow: none;
-  background: #b3d4fc;
-}
-
-@media print {
-
-  code[class*="language-"],
-  pre[class*="language-"] {
-    text-shadow: none;
-  }
-}
-
-/* Code blocks */
-pre[class*="language-"] {
-  padding: 1em;
-  margin: .5em 0;
-  overflow: auto;
-}
-
-:not(pre)>code[class*="language-"],
-pre[class*="language-"] {
-  background: #f5f2f0;
-}
-
-/* Inline code */
-:not(pre)>code[class*="language-"] {
-  padding: .1em;
-  border-radius: .3em;
-  white-space: normal;
-}
-
-.token.comment,
-.token.prolog,
-.token.doctype,
-.token.cdata {
-  color: slategray;
-}
-
-.token.punctuation {
-  color: #999;
-}
-
-.namespace {
-  opacity: .7;
-}
-
-.token.property,
-.token.tag,
-.token.boolean,
-.token.number,
-.token.constant,
-.token.symbol,
-.token.deleted {
-  color: #905;
-}
-
-.token.selector,
-.token.attr-name,
-.token.string,
-.token.char,
-.token.builtin,
-.token.inserted {
-  color: #690;
-}
-
-.token.operator,
-.token.entity,
-.token.url,
-.language-css .token.string,
-.style .token.string {
-  color: #9a6e3a;
-  background: hsla(0, 0%, 100%, .5);
-}
-
-.token.atrule,
-.token.attr-value,
-.token.keyword {
-  color: #07a;
-}
-
-.token.function,
-.token.class-name {
-  color: #DD4A68;
-}
-
-.token.regex,
-.token.important,
-.token.variable {
-  color: #e90;
-}
-
-.token.important,
-.token.bold {
-  font-weight: bold;
-}
-
-.token.italic {
-  font-style: italic;
-}
-
-.token.entity {
-  cursor: help;
-}

+ 0 - 257
xiaochengxu/static/icons/demo_index.html

@@ -1,257 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-  <meta charset="utf-8"/>
-  <title>iconfont Demo</title>
-  <link rel="shortcut icon" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg" type="image/x-icon"/>
-  <link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"/>
-  <link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
-  <link rel="stylesheet" href="demo.css">
-  <link rel="stylesheet" href="iconfont.css">
-  <script src="iconfont.js"></script>
-  <!-- jQuery -->
-  <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script>
-  <!-- 代码高亮 -->
-  <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script>
-  <style>
-    .main .logo {
-      margin-top: 0;
-      height: auto;
-    }
-
-    .main .logo a {
-      display: flex;
-      align-items: center;
-    }
-
-    .main .logo .sub-title {
-      margin-left: 0.5em;
-      font-size: 22px;
-      color: #fff;
-      background: linear-gradient(-45deg, #3967FF, #B500FE);
-      -webkit-background-clip: text;
-      -webkit-text-fill-color: transparent;
-    }
-  </style>
-</head>
-<body>
-  <div class="main">
-    <h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank">
-      <img width="200" src="https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg">
-      
-    </a></h1>
-    <div class="nav-tabs">
-      <ul id="tabs" class="dib-box">
-        <li class="dib active"><span>Unicode</span></li>
-        <li class="dib"><span>Font class</span></li>
-        <li class="dib"><span>Symbol</span></li>
-      </ul>
-      
-      <a href="https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=4001868" target="_blank" class="nav-more">查看项目</a>
-      
-    </div>
-    <div class="tab-container">
-      <div class="content unicode" style="display: block;">
-          <ul class="icon_lists dib-box">
-          
-            <li class="dib">
-              <span class="icon iconfont">&#xe669;</span>
-                <div class="name">朋友圈</div>
-                <div class="code-name">&amp;#xe669;</div>
-              </li>
-          
-            <li class="dib">
-              <span class="icon iconfont">&#xe66c;</span>
-                <div class="name">微信</div>
-                <div class="code-name">&amp;#xe66c;</div>
-              </li>
-          
-            <li class="dib">
-              <span class="icon iconfont">&#xe759;</span>
-                <div class="name">通知</div>
-                <div class="code-name">&amp;#xe759;</div>
-              </li>
-          
-          </ul>
-          <div class="article markdown">
-          <h2 id="unicode-">Unicode 引用</h2>
-          <hr>
-
-          <p>Unicode 是字体在网页端最原始的应用方式,特点是:</p>
-          <ul>
-            <li>支持按字体的方式去动态调整图标大小,颜色等等。</li>
-            <li>默认情况下不支持多色,直接添加多色图标会自动去色。</li>
-          </ul>
-          <blockquote>
-            <p>注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)</p>
-          </blockquote>
-          <p>Unicode 使用步骤如下:</p>
-          <h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3>
-<pre><code class="language-css"
->@font-face {
-  font-family: 'iconfont';
-  src: url('iconfont.woff2?t=1681436897668') format('woff2'),
-       url('iconfont.woff?t=1681436897668') format('woff'),
-       url('iconfont.ttf?t=1681436897668') format('truetype');
-}
-</code></pre>
-          <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
-<pre><code class="language-css"
->.iconfont {
-  font-family: "iconfont" !important;
-  font-size: 16px;
-  font-style: normal;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-</code></pre>
-          <h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3>
-<pre>
-<code class="language-html"
->&lt;span class="iconfont"&gt;&amp;#x33;&lt;/span&gt;
-</code></pre>
-          <blockquote>
-            <p>"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
-          </blockquote>
-          </div>
-      </div>
-      <div class="content font-class">
-        <ul class="icon_lists dib-box">
-          
-          <li class="dib">
-            <span class="icon iconfont icon-pengyouquan"></span>
-            <div class="name">
-              朋友圈
-            </div>
-            <div class="code-name">.icon-pengyouquan
-            </div>
-          </li>
-          
-          <li class="dib">
-            <span class="icon iconfont icon-weixin"></span>
-            <div class="name">
-              微信
-            </div>
-            <div class="code-name">.icon-weixin
-            </div>
-          </li>
-          
-          <li class="dib">
-            <span class="icon iconfont icon-tongzhi"></span>
-            <div class="name">
-              通知
-            </div>
-            <div class="code-name">.icon-tongzhi
-            </div>
-          </li>
-          
-        </ul>
-        <div class="article markdown">
-        <h2 id="font-class-">font-class 引用</h2>
-        <hr>
-
-        <p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p>
-        <p>与 Unicode 使用方式相比,具有如下特点:</p>
-        <ul>
-          <li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li>
-          <li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li>
-        </ul>
-        <p>使用步骤如下:</p>
-        <h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3>
-<pre><code class="language-html">&lt;link rel="stylesheet" href="./iconfont.css"&gt;
-</code></pre>
-        <h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
-<pre><code class="language-html">&lt;span class="iconfont icon-xxx"&gt;&lt;/span&gt;
-</code></pre>
-        <blockquote>
-          <p>"
-            iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
-        </blockquote>
-      </div>
-      </div>
-      <div class="content symbol">
-          <ul class="icon_lists dib-box">
-          
-            <li class="dib">
-                <svg class="icon svg-icon" aria-hidden="true">
-                  <use xlink:href="#icon-pengyouquan"></use>
-                </svg>
-                <div class="name">朋友圈</div>
-                <div class="code-name">#icon-pengyouquan</div>
-            </li>
-          
-            <li class="dib">
-                <svg class="icon svg-icon" aria-hidden="true">
-                  <use xlink:href="#icon-weixin"></use>
-                </svg>
-                <div class="name">微信</div>
-                <div class="code-name">#icon-weixin</div>
-            </li>
-          
-            <li class="dib">
-                <svg class="icon svg-icon" aria-hidden="true">
-                  <use xlink:href="#icon-tongzhi"></use>
-                </svg>
-                <div class="name">通知</div>
-                <div class="code-name">#icon-tongzhi</div>
-            </li>
-          
-          </ul>
-          <div class="article markdown">
-          <h2 id="symbol-">Symbol 引用</h2>
-          <hr>
-
-          <p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a>
-            这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:</p>
-          <ul>
-            <li>支持多色图标了,不再受单色限制。</li>
-            <li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li>
-            <li>兼容性较差,支持 IE9+,及现代浏览器。</li>
-            <li>浏览器渲染 SVG 的性能一般,还不如 png。</li>
-          </ul>
-          <p>使用步骤如下:</p>
-          <h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3>
-<pre><code class="language-html">&lt;script src="./iconfont.js"&gt;&lt;/script&gt;
-</code></pre>
-          <h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3>
-<pre><code class="language-html">&lt;style&gt;
-.icon {
-  width: 1em;
-  height: 1em;
-  vertical-align: -0.15em;
-  fill: currentColor;
-  overflow: hidden;
-}
-&lt;/style&gt;
-</code></pre>
-          <h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3>
-<pre><code class="language-html">&lt;svg class="icon" aria-hidden="true"&gt;
-  &lt;use xlink:href="#icon-xxx"&gt;&lt;/use&gt;
-&lt;/svg&gt;
-</code></pre>
-          </div>
-      </div>
-
-    </div>
-  </div>
-  <script>
-  $(document).ready(function () {
-      $('.tab-container .content:first').show()
-
-      $('#tabs li').click(function (e) {
-        var tabContent = $('.tab-container .content')
-        var index = $(this).index()
-
-        if ($(this).hasClass('active')) {
-          return
-        } else {
-          $('#tabs li').removeClass('active')
-          $(this).addClass('active')
-
-          tabContent.hide().eq(index).fadeIn()
-        }
-      })
-    })
-  </script>
-</body>
-</html>

+ 0 - 27
xiaochengxu/static/icons/iconfont.css

@@ -1,27 +0,0 @@
-@font-face {
-  font-family: "iconfont"; /* Project id 4001868 */
-  src: url('@/static/icons/iconfont.woff2?t=1681436897668') format('woff2'),
-       url('@/static/icons/iconfont.woff?t=1681436897668') format('woff'),
-       url('@/static/icons/iconfont.ttf?t=1681436897668') format('truetype');
-}
-
-.iconfont {
-  font-family: "iconfont" !important;
-  font-size: 16px;
-  font-style: normal;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-.icon-pengyouquan:before {
-  content: "\e669";
-}
-
-.icon-weixin:before {
-  content: "\e66c";
-}
-
-.icon-tongzhi:before {
-  content: "\e759";
-}
-

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
xiaochengxu/static/icons/iconfont.js


+ 0 - 30
xiaochengxu/static/icons/iconfont.json

@@ -1,30 +0,0 @@
-{
-  "id": "4001868",
-  "name": "card",
-  "font_family": "iconfont",
-  "css_prefix_text": "icon-",
-  "description": "电子名片",
-  "glyphs": [
-    {
-      "icon_id": "599908",
-      "name": "朋友圈",
-      "font_class": "pengyouquan",
-      "unicode": "e669",
-      "unicode_decimal": 58985
-    },
-    {
-      "icon_id": "599933",
-      "name": "微信",
-      "font_class": "weixin",
-      "unicode": "e66c",
-      "unicode_decimal": 58988
-    },
-    {
-      "icon_id": "577374",
-      "name": "通知",
-      "font_class": "tongzhi",
-      "unicode": "e759",
-      "unicode_decimal": 59225
-    }
-  ]
-}

BIN
xiaochengxu/static/icons/iconfont.ttf


BIN
xiaochengxu/static/icons/iconfont.woff


BIN
xiaochengxu/static/icons/iconfont.woff2


Diferenças do arquivo suprimidas por serem muito extensas
+ 3 - 0
xiaochengxu/style/icons/iconfont.css


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff