|
@@ -10,42 +10,152 @@
|
|
|
<Card>
|
|
<Card>
|
|
|
<p class="card-title blue">标签信息</p>
|
|
<p class="card-title blue">标签信息</p>
|
|
|
<van-cell-group v-if="!disable" :border="false">
|
|
<van-cell-group v-if="!disable" :border="false">
|
|
|
- <van-cell title="NFC编码" value="内容" />
|
|
|
|
|
- <van-cell title="所属机构" value="内容" is-link/>
|
|
|
|
|
- <van-cell title="区域名称" value="内容" is-link/>
|
|
|
|
|
- <van-cell title="采集点名称" value="内容" is-link/>
|
|
|
|
|
|
|
+ <van-cell title="NFC编码" :value="formData.code" />
|
|
|
|
|
+<!-- <van-cell title="所属机构" value="内容" is-link/>-->
|
|
|
|
|
+ <van-cell required title="选择所属机构" :label="orgName" is-link @click="clickItem"/>
|
|
|
|
|
+ <select-cell required :disabled="areaList.length == 0" v-model="formData.areaId" title="选择区域" :prop="props" :dataList="areaList"></select-cell>
|
|
|
|
|
+ <select-cell required :disabled="pointList.length == 0" v-model="formData.checkId" title="选择采集点" :prop="props" :dataList="pointList"></select-cell>
|
|
|
</van-cell-group>
|
|
</van-cell-group>
|
|
|
<van-cell-group v-else :border="false">
|
|
<van-cell-group v-else :border="false">
|
|
|
- <van-cell title="NFC编码" value="内容" />
|
|
|
|
|
- <van-cell title="所属机构" value="内容" />
|
|
|
|
|
- <van-cell title="区域名称" value="内容" />
|
|
|
|
|
- <van-cell title="采集点名称" value="内容" />
|
|
|
|
|
|
|
+ <van-cell title="NFC编码" :value="nfcInfo.code" />
|
|
|
|
|
+ <van-cell title="所属机构" :value="nfcInfo.orgId" />
|
|
|
|
|
+ <van-cell title="区域名称" :value="nfcInfo.areaId" />
|
|
|
|
|
+ <van-cell title="采集点名称" :value="nfcInfo.checkId" />
|
|
|
</van-cell-group>
|
|
</van-cell-group>
|
|
|
</Card>
|
|
</Card>
|
|
|
|
|
+ <div class="btn-box">
|
|
|
|
|
+ <van-button v-if="!disable" type="info" size="large" style="margin-bottom:20px;" @click="bindNfc">绑定</van-button>
|
|
|
|
|
+ <van-button v-if="disable && nfcInfo.code" type="danger" size="large" @click="unBindNfc">解绑</van-button>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <org-picker
|
|
|
|
|
+ :show="showPicker"
|
|
|
|
|
+ @cancel="cancelPicker"
|
|
|
|
|
+ @confirm="changeOrg">
|
|
|
|
|
+ </org-picker>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
import NavBar from '@/components/NavBar';
|
|
import NavBar from '@/components/NavBar';
|
|
|
import Card from '@/components/card';
|
|
import Card from '@/components/card';
|
|
|
|
|
+import OrgPicker from '@/components/OrgPicker';
|
|
|
|
|
+import SelectCell from '@/components/selectCell';
|
|
|
import {mapGetters} from "vuex";
|
|
import {mapGetters} from "vuex";
|
|
|
|
|
+import {binding,unbinding,nfcDetails,areaList,checkList} from './api';
|
|
|
export default {
|
|
export default {
|
|
|
- components:{NavBar,Card},
|
|
|
|
|
|
|
+ components:{
|
|
|
|
|
+ NavBar,
|
|
|
|
|
+ Card,
|
|
|
|
|
+ OrgPicker,
|
|
|
|
|
+ SelectCell,
|
|
|
|
|
+ },
|
|
|
data(){
|
|
data(){
|
|
|
return{
|
|
return{
|
|
|
- disable:false,
|
|
|
|
|
|
|
+ disable:true,
|
|
|
|
|
+ showPicker:false,
|
|
|
|
|
+ props:{
|
|
|
|
|
+ label:'name',
|
|
|
|
|
+ value:'id',
|
|
|
|
|
+ },
|
|
|
|
|
+ areaList:[],
|
|
|
|
|
+ pointList:[],
|
|
|
|
|
+ orgName:'',
|
|
|
|
|
+ nfcInfo:{
|
|
|
|
|
+ code:null,
|
|
|
|
|
+ orgId: '无',
|
|
|
|
|
+ areaId:'无',
|
|
|
|
|
+ checkId:'无',
|
|
|
|
|
+ },
|
|
|
|
|
+ formData:{
|
|
|
|
|
+ code:null,
|
|
|
|
|
+ orgId: null,
|
|
|
|
|
+ areaId:null,
|
|
|
|
|
+ checkId:null,
|
|
|
|
|
+ },
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
mounted() {
|
|
mounted() {
|
|
|
|
|
|
|
|
},
|
|
},
|
|
|
computed:{
|
|
computed:{
|
|
|
- ...mapGetters(['orgName','orgId']),
|
|
|
|
|
|
|
+ ...mapGetters(['orgId']),
|
|
|
},
|
|
},
|
|
|
methods:{
|
|
methods:{
|
|
|
|
|
+
|
|
|
|
|
+ bindNfc(){
|
|
|
|
|
+ let flag = this.checkData();
|
|
|
|
|
+ if(!flag) return
|
|
|
|
|
+ binding(this.formData).then(res=>{
|
|
|
|
|
+ this.$toast('绑定成功');
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ unBindNfc(){
|
|
|
|
|
+ let flag = this.checkData();
|
|
|
|
|
+ if(!flag) return
|
|
|
|
|
+ unbinding(this.formData).then(res=>{
|
|
|
|
|
+ this.$toast('解绑成功');
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ getAreaList(){
|
|
|
|
|
+ areaList(this.formData.orgId).then(res=>{
|
|
|
|
|
+ this.areaList = res.data;
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ getCheckList(){
|
|
|
|
|
+ checkList(this.formData.orgId).then(res=>{
|
|
|
|
|
+ this.pointList = res.data;
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
getNfc(){
|
|
getNfc(){
|
|
|
- alert('扫描')
|
|
|
|
|
|
|
+ alert('模拟扫描');
|
|
|
|
|
+ let code = '123144545' // '3333333333'
|
|
|
|
|
+ nfcDetails(code).then(res=>{
|
|
|
|
|
+ console.log(res,'res')
|
|
|
|
|
+ if(res.data){
|
|
|
|
|
+ this.nfcInfo = res.data;
|
|
|
|
|
+ }else {
|
|
|
|
|
+ this.$toast('未查询到相关信息');
|
|
|
|
|
+ this.formData.code = code;
|
|
|
|
|
+ this.disable = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ changeOrg(selected){
|
|
|
|
|
+ this.showPicker = false;
|
|
|
|
|
+ this.orgName = selected[0].text;
|
|
|
|
|
+ this.formData.orgId = selected[0].id;
|
|
|
|
|
+ console.log(selected,'id')
|
|
|
|
|
+ this.getAreaList();
|
|
|
|
|
+ this.getCheckList();
|
|
|
|
|
+ },
|
|
|
|
|
+ cancelPicker(){
|
|
|
|
|
+ this.showPicker = false;
|
|
|
|
|
+ },
|
|
|
|
|
+ checkData(){
|
|
|
|
|
+ if(!this.formData.code){
|
|
|
|
|
+ this.$toast('请先扫描NFC标签');
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ if(!this.formData.orgId){
|
|
|
|
|
+ this.$toast('请选择所属机构');
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ if(!this.formData.areaId){
|
|
|
|
|
+ this.$toast('请选择区域');
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ if(!this.formData.checkId){
|
|
|
|
|
+ this.$toast('请选择采集点');
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ return true;
|
|
|
|
|
+ },
|
|
|
|
|
+ clickItem(){
|
|
|
|
|
+ console.log(111)
|
|
|
|
|
+ this.showPicker = true;
|
|
|
},
|
|
},
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -71,9 +181,8 @@ export default {
|
|
|
padding:0 20px;
|
|
padding:0 20px;
|
|
|
margin-top:24px;
|
|
margin-top:24px;
|
|
|
>div{
|
|
>div{
|
|
|
- width: 500px;
|
|
|
|
|
- height: 500px;
|
|
|
|
|
- background-color: rgba(0, 140, 214, 0.69);
|
|
|
|
|
|
|
+ width: 400px;
|
|
|
|
|
+ height: 400px;
|
|
|
border-radius: 50%;
|
|
border-radius: 50%;
|
|
|
display: flex;
|
|
display: flex;
|
|
|
justify-content: center;
|
|
justify-content: center;
|
|
@@ -88,13 +197,16 @@ export default {
|
|
|
.blue{
|
|
.blue{
|
|
|
color:#008cd6;
|
|
color:#008cd6;
|
|
|
}
|
|
}
|
|
|
|
|
+ .btn-box{
|
|
|
|
|
+ margin-top: 40px;
|
|
|
|
|
+ }
|
|
|
.nfc-btn {
|
|
.nfc-btn {
|
|
|
/* 应用动画flowCss 12秒速度 无限循环 线性匀速动画*/
|
|
/* 应用动画flowCss 12秒速度 无限循环 线性匀速动画*/
|
|
|
animation: donghua 2.4s infinite;
|
|
animation: donghua 2.4s infinite;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.nfc-btn {
|
|
.nfc-btn {
|
|
|
- margin: 60px;
|
|
|
|
|
|
|
+ margin: 50px;
|
|
|
width: 32%;
|
|
width: 32%;
|
|
|
height: 48vh;
|
|
height: 48vh;
|
|
|
background: linear-gradient(-45deg, #dae, #3c9, #09f, #66f);
|
|
background: linear-gradient(-45deg, #dae, #3c9, #09f, #66f);
|
|
@@ -108,15 +220,12 @@ export default {
|
|
|
@keyframes donghua {
|
|
@keyframes donghua {
|
|
|
0% {
|
|
0% {
|
|
|
transform: scale(1);
|
|
transform: scale(1);
|
|
|
- /* 注意rgba中的a的设置 */
|
|
|
|
|
- box-shadow: 0 0 0 0 rgba(204, 73, 152, 60%);
|
|
|
|
|
|
|
+ box-shadow: 0 0 0 0 rgba(0, 153, 255, 60%);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
60% {
|
|
60% {
|
|
|
transform: scale(1);
|
|
transform: scale(1);
|
|
|
- box-shadow: 0 0 0 18px rgba(204, 73, 152, 0%);
|
|
|
|
|
|
|
+ box-shadow: 0 0 0 18px rgba(0, 153, 255, 0%);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
100% {
|
|
100% {
|
|
|
transform: scale(1);
|
|
transform: scale(1);
|
|
|
box-shadow: 0 0 0 0 rgba(204, 73, 152, 0%);
|
|
box-shadow: 0 0 0 0 rgba(204, 73, 152, 0%);
|