liwei2496 2 年之前
父節點
當前提交
dc3a22a45b

+ 100 - 38
.idea/workspace.xml

@@ -3,21 +3,20 @@
   <component name="ChangeListManager">
     <list default="true" id="b14f9fe1-d3c3-496a-8ebb-4789fe400212" name="默认更改列表" comment="">
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/http/baseApi.js" beforeDir="false" afterPath="$PROJECT_DIR$/http/baseApi.js" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/pages.json" beforeDir="false" afterPath="$PROJECT_DIR$/pages.json" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/pages/Workorder/Tenantbill/Tenantbill.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/Workorder/Tenantbill/Tenantbill.vue" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/pages/Workorder/Arrearsrecord/Arrearsrecord.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/Workorder/Arrearsrecord/Arrearsrecord.vue" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/pages/Workorder/Workorder.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/Workorder/Workorder.vue" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/pages/index/BillPending/BillPending.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/BillPending/BillPending.vue" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/unpackage/cache/certdata" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/cache/certdata" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/pages/index/Immediatecollection/Immediatecollection.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/Immediatecollection/Immediatecollection.vue" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/pages/index/Onlinewarranty/Onlinewarranty.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/Onlinewarranty/Onlinewarranty.vue" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/pages/index/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/index.vue" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/pages/login/login.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/login/login.vue" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/uni.scss" beforeDir="false" afterPath="$PROJECT_DIR$/uni.scss" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/unpackage/cache/wgt/__UNI__FF40C0C/app-config-service.js" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/cache/wgt/__UNI__FF40C0C/app-config-service.js" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/unpackage/cache/wgt/__UNI__FF40C0C/app-service.js" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/cache/wgt/__UNI__FF40C0C/app-service.js" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/unpackage/cache/wgt/__UNI__FF40C0C/app-view.js" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/cache/wgt/__UNI__FF40C0C/app-view.js" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/unpackage/cache/wgt/__UNI__FF40C0C/manifest.json" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/cache/wgt/__UNI__FF40C0C/manifest.json" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/unpackage/cache/wgt/__UNI__FF40C0C/static/my/xinxi.png" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/cache/wgt/__UNI__FF40C0C/static/my/xinxi.png" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/unpackage/dist/build/app-plus/app-config-service.js" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/build/app-plus/app-config-service.js" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/unpackage/dist/build/app-plus/app-service.js" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/build/app-plus/app-service.js" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/unpackage/dist/build/app-plus/app-view.js" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/build/app-plus/app-view.js" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/unpackage/dist/build/app-plus/static/my/xinxi.png" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/build/app-plus/static/my/xinxi.png" afterDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/.tmp/" />
     <ignored path="$PROJECT_DIR$/temp/" />
@@ -30,11 +29,11 @@
   </component>
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/pages/index/index.vue">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="721">
-              <caret line="232" column="10" selection-start-line="232" selection-start-column="10" selection-end-line="232" selection-end-column="10" />
+            <state relative-caret-position="631">
+              <caret line="229" column="10" selection-start-line="229" selection-start-column="10" selection-end-line="229" selection-end-column="10" />
               <folding>
                 <element signature="n#style#0;n#view#1;n#view#0;n#view#0;n#view#0;n#view#0;n#view#0;n#template#0;n#!!top" expanded="true" />
                 <element signature="n#style#0;n#view#1;n#view#1;n#view#0;n#view#0;n#view#0;n#view#0;n#template#0;n#!!top" expanded="true" />
@@ -75,6 +74,36 @@
           </provider>
         </entry>
       </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/pages/login/login.vue">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="510">
+              <caret line="55" column="35" selection-start-line="55" selection-start-column="35" selection-end-line="55" selection-end-column="35" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/uni.scss">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="540">
+              <caret line="39" column="30" selection-start-line="39" selection-start-column="30" selection-end-line="39" selection-end-column="30" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/pages/index/Onlinewarranty/Onlinewarranty.vue">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="-120">
+              <caret line="241" column="53" selection-start-line="241" selection-start-column="42" selection-end-line="241" selection-end-column="53" />
+              <folding>
+                <element signature="n#style#0;n#image#0;n#u-upload#0;n#view#0;n#u-form-item#6;n#u--form#0;n#view#0;n#view#0;n#template#0;n#!!top" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
     </leaf>
   </component>
   <component name="FileTemplateManagerImpl">
@@ -86,9 +115,6 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>getuserInfoname</find>
-      <find>pd</find>
-      <find>totalnumber</find>
       <find>getuserInfophone</find>
       <find>indexList</find>
       <find>Onlinewarranty</find>
@@ -116,6 +142,9 @@
       <find>pending1</find>
       <find>arrears</find>
       <find>arrears1</find>
+      <find>fileList1</find>
+      <find>afterRead</find>
+      <find>fileListLen</find>
     </findStrings>
     <replaceStrings>
       <replace>repairRegioncontactPerson</replace>
@@ -127,7 +156,6 @@
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
       <list>
-        <option value="$PROJECT_DIR$/pages/index/Onlinewarranty/Onlinewarranty.vue" />
         <option value="$PROJECT_DIR$/pages/my/Mydistribution/distributionedit/distributionedit.vue" />
         <option value="$PROJECT_DIR$/pages/index/Inspectionrecord/Inspectionrecord.vue" />
         <option value="$PROJECT_DIR$/http/baseApi.js" />
@@ -141,6 +169,10 @@
         <option value="$PROJECT_DIR$/pages/my/Personalinformation/Personalinformation.vue" />
         <option value="$PROJECT_DIR$/pages/my/Personalinformation/Informationmodification/Informationmodification.vue" />
         <option value="$PROJECT_DIR$/pages/index/index.vue" />
+        <option value="$PROJECT_DIR$/pages/Workorder/Workorder.vue" />
+        <option value="$PROJECT_DIR$/uni.scss" />
+        <option value="$PROJECT_DIR$/pages/login/login.vue" />
+        <option value="$PROJECT_DIR$/pages/index/Onlinewarranty/Onlinewarranty.vue" />
       </list>
     </option>
   </component>
@@ -166,6 +198,11 @@
               <item name="witcabonAPP" type="b2602c69:ProjectViewProjectNode" />
               <item name="witcabonAPP" type="462c0819:PsiDirectoryNode" />
             </path>
+            <path>
+              <item name="witcabonAPP" type="b2602c69:ProjectViewProjectNode" />
+              <item name="witcabonAPP" type="462c0819:PsiDirectoryNode" />
+              <item name="http" type="462c0819:PsiDirectoryNode" />
+            </path>
             <path>
               <item name="witcabonAPP" type="b2602c69:ProjectViewProjectNode" />
               <item name="witcabonAPP" type="462c0819:PsiDirectoryNode" />
@@ -233,6 +270,12 @@
               <item name="Personalinformation" type="462c0819:PsiDirectoryNode" />
               <item name="Informationmodification" type="462c0819:PsiDirectoryNode" />
             </path>
+            <path>
+              <item name="witcabonAPP" type="b2602c69:ProjectViewProjectNode" />
+              <item name="witcabonAPP" type="462c0819:PsiDirectoryNode" />
+              <item name="pages" type="462c0819:PsiDirectoryNode" />
+              <item name="Workorder" type="462c0819:PsiDirectoryNode" />
+            </path>
             <path>
               <item name="witcabonAPP" type="b2602c69:ProjectViewProjectNode" />
               <item name="witcabonAPP" type="462c0819:PsiDirectoryNode" />
@@ -281,11 +324,13 @@
       <workItem from="1681258597059" duration="12277000" />
       <workItem from="1681345236598" duration="1191000" />
       <workItem from="1681432005487" duration="594000" />
+      <workItem from="1681691706962" duration="1414000" />
+      <workItem from="1681776390439" duration="8242000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="56177000" />
+    <option name="totallyTimeSpent" value="65833000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="1912" y="-8" width="1936" height="1056" extended-state="6" />
@@ -342,13 +387,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/http/index.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="330">
-          <caret line="11" column="82" lean-forward="true" selection-start-line="11" selection-start-column="82" selection-end-line="11" selection-end-column="82" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/http/baseApi.js">
       <provider selected="true" editor-type-id="text-editor">
         <state>
@@ -383,13 +421,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pages/index/Onlinewarranty/Onlinewarranty.vue">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="30">
-          <caret line="69" selection-start-line="69" selection-end-line="69" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/pages/index/EquipmentException/EquipmentException.vue">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="549">
@@ -426,13 +457,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pages/login/login.vue">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-1770">
-          <caret line="72" column="48" selection-start-line="72" selection-start-column="33" selection-end-line="72" selection-end-column="48" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/pages/my/Personalinformation/Informationmodification/Informationmodification.vue">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="399">
@@ -454,10 +478,17 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/uni.scss">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="540">
+          <caret line="39" column="30" selection-start-line="39" selection-start-column="30" selection-end-line="39" selection-end-column="30" />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/pages/index/index.vue">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="721">
-          <caret line="232" column="10" selection-start-line="232" selection-start-column="10" selection-end-line="232" selection-end-column="10" />
+        <state relative-caret-position="631">
+          <caret line="229" column="10" selection-start-line="229" selection-start-column="10" selection-end-line="229" selection-end-column="10" />
           <folding>
             <element signature="n#style#0;n#view#1;n#view#0;n#view#0;n#view#0;n#view#0;n#view#0;n#template#0;n#!!top" expanded="true" />
             <element signature="n#style#0;n#view#1;n#view#1;n#view#0;n#view#0;n#view#0;n#view#0;n#template#0;n#!!top" expanded="true" />
@@ -497,5 +528,36 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/pages/Workorder/Workorder.vue">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="630">
+          <caret line="42" selection-start-line="42" selection-end-line="42" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pages/login/login.vue">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="510">
+          <caret line="55" column="35" selection-start-line="55" selection-start-column="35" selection-end-line="55" selection-end-column="35" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/http/index.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="330">
+          <caret line="11" column="52" selection-start-line="11" selection-start-column="36" selection-end-line="11" selection-end-column="52" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pages/index/Onlinewarranty/Onlinewarranty.vue">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-120">
+          <caret line="241" column="53" selection-start-line="241" selection-start-column="42" selection-end-line="241" selection-end-column="53" />
+          <folding>
+            <element signature="n#style#0;n#image#0;n#u-upload#0;n#view#0;n#u-form-item#6;n#u--form#0;n#view#0;n#view#0;n#template#0;n#!!top" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>

+ 18 - 0
pages.json

@@ -294,6 +294,24 @@
             }
             
         }
+        ,{
+            "path" : "pages/Workorder/Videosurveillance/Videosurveillance",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "视频监控",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/Workorder/Videosurveillance/Videoplayback/Videoplayback",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "摄像头直播",
+                "enablePullDownRefresh": false
+            }
+            
+        }
     ],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",

+ 68 - 68
pages/Workorder/Arrearsrecord/Arrearsrecord.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="billall">
-	
+
 		<view class="topbill">
 			<view class="topbilledit">
 				<view class="changetime1">
@@ -21,7 +21,7 @@
 				</view>
 			</view>
 		</view>
-		
+
 
 		<view class="u-listdata">
 			<view style="padding:10rpx 0 0 30rpx">
@@ -47,11 +47,11 @@
 						</view>
 						<view class="Currentamount">
 							账单类型:{{item.billType}}
-						</view>					
+						</view>
 						<view class="Currentamount">
 							联系电话: {{item.phone}}
 						</view>
-						
+
 						<view class="Callfee" v-if="item.isExpedit==1" @click.stop="handleClick(item.id)">
 							催费
 						</view>
@@ -65,20 +65,20 @@
 
 
 
-		<u-picker :show="showtype" :columns="columnstype" keyName="dictLabel" @confirm="confirmtype" @cancel='canceltype'>
+		<u-picker :show="showtype" :columns="columnstype" keyName="dictLabel" @confirm="confirmtype"
+			@cancel='canceltype'>
 		</u-picker>
-	
-	
-	
+
+
+
 		<u-notify ref="uNotify" :show="showdct" message="服务器请求失败"></u-notify>
 	</view>
 </template>
 
 <script>
-	
 	export default {
 		components: {
-		
+
 		},
 		data() {
 			const currentDate = this.getDate({
@@ -90,13 +90,13 @@
 				indexList: [],
 				dataList: [],
 				dataForm: {
-					arrearDay: "",//欠费天数
-					billType: "",//账单类型
-					cycle: currentDate,//欠费周期
-					isExpedit: "",//是否催费0否1是
+					arrearDay: "", //欠费天数
+					billType: "", //账单类型
+					cycle: currentDate, //欠费周期
+					isExpedit: "", //是否催费0否1是
 					order: "",
 					orderField: "",
-					tenantName: "",//租客名称
+					tenantName: "", //租客名称
 					page: 1,
 					limit: 10,
 				},
@@ -110,12 +110,12 @@
 				columns: [],
 				pd: true,
 				columnData: [],
-				columnstypes:[],
+				columnstypes: [],
 				myday: '',
 				mytype: '全部',
 				showPicker: false,
 				myday: currentDate,
-				columnstype: [		],
+				columnstype: [],
 
 
 
@@ -123,14 +123,14 @@
 		},
 		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
 		onLoad() {
-			let getDictDataList=uni.getStorageSync('getDictDataList');
-						for(let i=0;i<getDictDataList.length;i++){
-							if(getDictDataList[i].dictType=='PayType'){
-								this.columnstypes=getDictDataList[i].dataList;
-								this.columnstype=[getDictDataList[i].dataList];
-							}
-						}
-			
+			let getDictDataList = uni.getStorageSync('getDictDataList');
+			for (let i = 0; i < getDictDataList.length; i++) {
+				if (getDictDataList[i].dictType == 'PayType') {
+					this.columnstypes = getDictDataList[i].dataList;
+					this.columnstype = [getDictDataList[i].dataList];
+				}
+			}
+
 			this.getalldata();
 
 		},
@@ -151,15 +151,15 @@
 
 
 		methods: {
-		
+
 			handleClick(e) {
-				
-				let Temporarydata=[e];
-				 
-				 let stringdata = JSON.stringify(Temporarydata);
-				   let finallydata = stringdata.replace (/"/g,''); 					 					
-								 
-				this.$api.post('/expeditrecord/charge',finallydata)
+
+				let Temporarydata = [e];
+
+				let stringdata = JSON.stringify(Temporarydata);
+				let finallydata = stringdata.replace(/"/g, '');
+
+				this.$api.post('/expeditrecord/charge', finallydata)
 					.then(res => {
 						if (res.data.code == 0) {
 							uni.showToast({
@@ -174,9 +174,9 @@
 								duration: 1500
 							})
 						}
-						this.dataForm.page=1;
-	this.indexList=[];				
-this.getalldata();
+						this.dataForm.page = 1;
+						this.indexList = [];
+						this.getalldata();
 
 					})
 			},
@@ -192,23 +192,23 @@ this.getalldata();
 
 				this.$api.get('/expeditrecord/apppage', this.dataForm)
 					.then(res => {
-						
+
 						this.totalnumber = res.data.data.total;
 						if (res.data.data.list.length != 0) {
 							function transform(a, b) {
-							    loop: for (let i = 0; i < a.length; i++) {
+								loop: for (let i = 0; i < a.length; i++) {
 							  for (let j = 0; j < b.length; j++) {
-							 if (a[i].billType == b[j].dictValue) {
-							 a[i].billType = b[j].dictLabel;
-							 continue loop;
-							   }
-							 }
-							  a[i].billType =  a[i].billType;
-							   }
-							  return a;
-							}							
-							res.data.data.list=transform(res.data.data.list, this.columnstypes)
-							 
+										if (a[i].billType == b[j].dictValue) {
+											a[i].billType = b[j].dictLabel;
+											continue loop;
+										}
+									}
+									a[i].billType = a[i].billType;
+								}
+								return a;
+							}
+							res.data.data.list = transform(res.data.data.list, this.columnstypes)
+
 							this.indexList.push(...res.data.data.list);
 							this.dataForm.page = this.dataForm.page + 1;
 							this.pd = true;
@@ -231,22 +231,22 @@ this.getalldata();
 			canceltype() {
 				this.showtype = false;
 			},
-			confirmtype(e) {					
-					if( e.value[0].dictLabel=="全部"){
-						this.showtype = false;
-						this.mytype = e.value[0].dictLabel;
-						this.dataForm.billType ='';
-						this.indexList = [];
-						this.dataForm.page = 1;
-						this.getalldata();
-					}else{
-						this.showtype = false;
-						this.mytype = e.value[0].dictLabel;
-						this.dataForm.billType = e.value[0].dictValue;
-						this.indexList = [];
-						this.dataForm.page = 1;
-						this.getalldata();
-					}														
+			confirmtype(e) {
+				if (e.value[0].dictLabel == "全部") {
+					this.showtype = false;
+					this.mytype = e.value[0].dictLabel;
+					this.dataForm.billType = '';
+					this.indexList = [];
+					this.dataForm.page = 1;
+					this.getalldata();
+				} else {
+					this.showtype = false;
+					this.mytype = e.value[0].dictLabel;
+					this.dataForm.billType = e.value[0].dictValue;
+					this.indexList = [];
+					this.dataForm.page = 1;
+					this.getalldata();
+				}
 			},
 			typechange() {
 				this.showtype = true;
@@ -271,9 +271,9 @@ this.getalldata();
 				// day = day > 9 ? day : '0' + day;
 				return `${year}-${month}`;
 			},
-		
-		
-		
+
+
+
 
 
 		}

+ 77 - 0
pages/Workorder/Videosurveillance/Videoplayback/Videoplayback.vue

@@ -0,0 +1,77 @@
+<template>
+	<view class="shipin">
+		   <div id="video-container" class="myplayer" ref="myPlayer" @click="noclick"></div>
+	</view>
+</template>
+
+<script>
+	 import EZUIKit from "../../../../utils/ezuikit.js";
+	   var player = null;
+	export default {
+		data() {
+			return {
+				urls:'',
+				width:'',
+			}
+		},
+		onLoad(options) {
+		    this.urls = options.companyOrgId;
+		    console.log( this.urls);
+			this.accessToken();
+			this.width = uni.getSystemInfoSync().screenWidth;
+		  console.log('111111111111111111', uni.getSystemInfoSync().screenWidth)	 
+		},
+		
+		methods: {
+			accessToken(){
+				
+				 var postdata ={
+				                    'appKey': 'bf1fe258e25b4556af2889b53cf2d835',
+				                    'appSecret': 'f814b3ce1653f7f909b6ccc358563fb3'
+				                };
+				 
+				uni.request({
+				    url:'https://open.ys7.com/api/lapp/token/get',
+				    method: "POST",
+				    data: postdata,
+				    header: {
+				        'content-type': 'application/x-www-form-urlencoded',
+				    },
+				    success: (res) => {
+				      //  console.log('111111111111111111',res.data.data.accessToken)
+						
+						 player = new EZUIKit.EZUIKitPlayer({
+						                        id: 'video-container', // 视频容器ID
+						                        accessToken: res.data.data.accessToken,
+						                        url:this.urls,
+						                        // simple - 极简版; pcLive-pc直播;pcRec-pc回放;mobileLive-移动端直播;mobileRec-移动端回放;security - 安防版;voice-语音版;
+						                        template: 'simple',
+						                        plugin: ['talk'], // 加载插件,talk-对讲
+						                        width:this.width,
+						                        height: 250,
+						                        autoplay: true,
+						                      //  decoderPath: EZUIKit,
+						
+						                    });
+						                    window.player = player;
+				
+				    }
+				});
+				
+				
+				
+			}
+		}
+	}
+</script>
+
+<style>
+.shipin{
+	width: 750rpx;
+	height: 100%;
+}
+ #video-container{
+        width: 750rpx;
+        height: 600rpx;
+    }
+</style>

+ 310 - 0
pages/Workorder/Videosurveillance/Videosurveillance.vue

@@ -0,0 +1,310 @@
+<template>
+	<view class="billall">
+
+		<!-- 	<view class="topbill">
+
+			<view class="topbilledit" @click="typechange">
+				<view class="changetime1">
+					{{mytype}}
+				</view>
+				<view class="changetime2">
+					<u-icon name="arrow-down-fill" color="#666666" size="20"></u-icon>
+				</view>
+			</view>
+		</view> -->
+
+		<view class="u-listdata">
+
+			<view style="padding:10rpx 0 0 30rpx">
+				共有 <span style="color: red">{{totalnumber}}</span>条记录
+			</view>
+			<u-list @scrolltolower="scrolltolower" :pagingEnabled='true'>
+				<u-list-item v-for="(item, index) in indexList" :key="index">
+
+					<view class="companylist" @click="seedetail(item)">
+						<view class="settled">
+							查看
+						</view>
+
+
+						<view class="Currentamount" style="margin-top: 20rpx;">
+							通道名: {{item.channelName}}
+						</view>
+						<view class="Currentamount">
+							通道号: {{item.channelNo}}
+						</view>
+						<view class="Currentamount">
+							设备序列号: {{item.deviceSerial}}
+						</view>
+						<!-- <view class="Currentamount">
+							直播地址: {{item.url}}
+						</view> -->
+					
+					</view>
+
+				</u-list-item>
+			</u-list>
+
+		</view>
+
+
+
+		<!-- 
+		<u-picker :show="showtype" :columns="columnstype" keyName="label" @confirm="confirmtype" @cancel='canceltype'>
+		</u-picker> -->
+
+
+
+
+
+	</view>
+</template>
+
+<script>
+	//import { isEmpty, getDictDataList } from "@/utils/index";
+	export default {
+		components: {
+
+		},
+		data() {
+
+			return {
+				totalnumber: 0,
+				setyesno: true,
+				indexList: [],
+				dataList: [],
+				dataForm: {
+					"accessToken": "",
+					"channelNo": "",
+					"deviceSerial": "",
+					"expireTime": "3600",
+					"pageSize": 10,
+					"pageStart": 0,
+					"protocol": 1
+				},
+				pd: true,
+				showtype: false,
+				showdct: false,
+				mytitle: '',
+				alldata: [],
+				showfloor: false,
+				loading: false,
+				columns: [],
+				columnData: [],
+				myday: '',
+				mytype: '全部',
+				showPicker: false,
+				//myday: currentDate,
+				columnstype: [
+					[{
+							label: '全部',
+							id: ''
+
+						}, {
+							label: '已关闭',
+							id: '-1'
+						},
+						{
+							label: '待支付',
+							id: '0'
+						},
+						{
+							label: '已支付',
+							id: '1'
+						},
+					]
+				],
+
+
+
+			}
+		},
+		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
+		onLoad() {
+			this.getalldata();
+			//	this.loadmore();
+		},
+		//监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
+		onReady() {
+			// 微信小程序需要用此写法
+
+		},
+
+		//监听页面隐藏
+		onHide() {},
+		//监听窗口尺寸变化
+		onResize() {},
+		//监听页面卸载
+		onUnload() {},
+		//监听用户下拉动作,一般用于下拉刷新
+		onPullDownRefresh() {},
+
+
+		methods: {
+			seedetail(e) {
+				uni.navigateTo({
+					url: `/pages/Workorder/Videosurveillance/Videoplayback/Videoplayback?companyOrgId=${e.url}`
+				});
+			},
+
+			scrolltolower() {
+				if (this.pd) {
+					this.getalldata();
+				} else {
+					return
+				}
+			},
+
+			getalldata() {
+				this.$api.post('/video/page', this.dataForm)
+					.then(res => {
+						console.log('111111111111111111', res.data.data)
+
+						this.totalnumber = res.data.data.total;
+						if (res.data.data.list.length != 0) {
+							this.indexList.push(...res.data.data.list);
+							this.dataForm.page = this.dataForm.page + 1;
+							this.pd = true;
+						} else {
+							uni.showToast({
+								title: '暂无更多数据了',
+								icon: 'none',
+								duration: 1500
+							})
+							this.pd = false;
+						}
+					})
+			},
+
+			// canceltype() {
+			// 	this.showtype = false;
+			// },
+			// confirmtype(e) {
+			// 	console.log('111111111111111111', e.value[0])
+			// 	this.showtype = false;
+			// 	this.mytype = e.value[0].label;
+			// 	this.dataForm.status = e.value[0].id;
+			// 	this.indexList = [];
+			// 	this.dataForm.page = 1;
+			// 	this.getalldata();
+			// },
+			// typechange() {
+			// 	this.showtype = true;
+			// },
+
+
+
+
+
+
+		}
+	}
+</script>
+
+<style lang="scss">
+	.Currentamount {
+		padding-left: 30rpx;
+		height: 50rpx;
+		line-height: 50rpx;
+		color: #BCB3A7;
+
+		span {
+			color: #FA5555;
+			padding-left: 9rpx;
+		}
+	}
+
+	.Callfee {
+		width: 100rpx;
+		height: 45rpx;
+		text-align: center;
+		line-height: 45rpx;
+		color: #5C8FFF;
+		border: 1px solid #5C8FFF;
+		font-size: 22rpx;
+		position: absolute;
+		bottom: 10rpx;
+		right: 10px;
+		font-weight: bold;
+	}
+
+	.companylist {
+		margin: 20rpx 30rpx;
+		background: #fff;
+		height: 190rpx;
+		border-radius: 10px;
+		position: relative;
+
+		h3 {
+			height: 70rpx;
+			line-height: 70rpx;
+			padding-left: 30rpx;
+		}
+	}
+
+	.settled {
+		background-color: #09C700;
+		width: 100rpx;
+		height: 60rpx;
+		text-align: center;
+		line-height: 60rpx;
+		color: #fff;
+		font-size: 14rpx;
+		position: absolute;
+		top: 0px;
+		right: 0px;
+		border-top-right-radius: 10rpx;
+		border-bottom-left-radius: 10rpx;
+	}
+
+	.outstanding {
+		background-color: #30D3A2;
+		width: 100rpx;
+		height: 40rpx;
+		text-align: center;
+		line-height: 40rpx;
+		color: #fff;
+		font-size: 14rpx;
+		position: absolute;
+		top: 0px;
+		right: 0px;
+		border-top-right-radius: 10rpx;
+		border-bottom-left-radius: 10rpx;
+	}
+
+	.guanbi {
+		background-color: red;
+		width: 100rpx;
+		height: 40rpx;
+		text-align: center;
+		line-height: 40rpx;
+		color: #fff;
+		font-size: 14rpx;
+		position: absolute;
+		top: 0px;
+		right: 0px;
+		border-top-right-radius: 10rpx;
+		border-bottom-left-radius: 10rpx;
+	}
+
+
+	.billall {}
+
+	.topbill {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		height: 100rpx;
+		background-color: #e6e6e6;
+	}
+
+	.topbilledit {
+		display: flex;
+		justify-content: space-around;
+		align-items: center;
+	}
+
+	.changetime1 {
+		padding-right: 10rpx;
+	}
+</style>

+ 31 - 15
pages/Workorder/Workorder.vue

@@ -3,7 +3,7 @@
 		<view class="managelind">
 			<view class="managename" @click="Tenantbill"  v-if="$has('app:TenantBill')">
 				<view class="managename1">
-			
+
 					<u--image  mode="widthFix"  :src="srczuhu" width="48rpx" height="48rpx"></u--image>
 				</view>
 				<view class="managename2">
@@ -19,30 +19,40 @@
 					远程管控
 				</view>
 			</view>
-			
-			<!-- v-if="$has('app:Arrearsrecord')" -->
-			<view class="managename" @click="Arrearsrecord" >
+
+	<view class="managename" @click="Videosurveillance" >
 				<view class="managename1">
 					<!-- <img :src='srcyuanc' alt=""> -->
-						<u--image  mode="widthFix"  :src="srcjilu" width="48rpx" height="48rpx"></u--image>
+				<u--image  mode="widthFix"  :src="srcshipin" width="48rpx" height="48rpx"></u--image>
 				</view>
 				<view class="managename2">
-					欠费记录
+					视频监控
 				</view>
 			</view>
-			
+
+			<!-- v-if="$has('app:Arrearsrecord')" -->
+			<!--<view class="managename" @click="Arrearsrecord" >-->
+				<!--<view class="managename1">-->
+					<!--&lt;!&ndash; <img :src='srcyuanc' alt=""> &ndash;&gt;-->
+						<!--<u&#45;&#45;image  mode="widthFix"  :src="srcjilu" width="48rpx" height="48rpx"></u&#45;&#45;image>-->
+				<!--</view>-->
+				<!--<view class="managename2">-->
+					<!--欠费记录-->
+				<!--</view>-->
+			<!--</view>-->
+
 			<!-- <view class="managename" @click="pay">
 				<view class="managename1">
-					<!-- <img :src='srcyuanc' alt=""> -->
-					<!-- 	<u--image  mode="widthFix"  :src="srcyuanc" width="48rpx" height="48rpx"></u--image>
+					 <img :src='srcyuanc' alt="">
+						<u--image  mode="widthFix"  :src="srcyuanc" width="48rpx" height="48rpx"></u--image>
 				</view>
 				<view class="managename2">
 					支付功能
 				</view>
 			</view> -->
 		</view>
-	
-		
+
+
 	</view>
 </template>
 
@@ -52,23 +62,29 @@
 			return {
 					srczuhu: require('@/static/management/zd.png'),
 					srcyuanc: require('@/static/management/yc.png'),
-					srcjilu: require('@/static/management/jl.png'),	
+					srcjilu: require('@/static/management/jl.png'),
+					srcshipin: require('@/static/management/sp.png'),
 			}
 		},
 		methods: {
 			Tenantbill(){
 				uni.navigateTo({
 					url: '/pages/Workorder/Tenantbill/Tenantbill'
-				})				
+				})
 			},
 			Remotecontrol(){
 				uni.navigateTo({
 					url: '/pages/Workorder/Remotecontrol/Remotecontrol'
 				})
 			},
-			Arrearsrecord(){
+			// Arrearsrecord(){
+			// 	uni.navigateTo({
+			// 		url: '/pages/Workorder/Arrearsrecord/Arrearsrecord'
+			// 	})
+			// },
+			Videosurveillance(){
 				uni.navigateTo({
-					url: '/pages/Workorder/Arrearsrecord/Arrearsrecord'
+					url: '/pages/Workorder/Videosurveillance/Videosurveillance'
 				})
 			},
 			// pay(){

+ 1 - 1
pages/index/Immediatecollection/Immediatecollection.vue

@@ -276,7 +276,7 @@
 				this.showtype = false;
 			},
 			confirmtype(e) {
-					console.log('111111111111111111', e.value[0])
+				
 				this.showtype = false;
 				this.mytype = e.value[0].label;
 				this.dataForm.billType = e.value[0].id;

+ 124 - 58
pages/index/Onlinewarranty/Onlinewarranty.vue

@@ -7,10 +7,10 @@
 				<!-- <u-form-item labelWidth='180' label="任务名称:" prop="userInfo.contactPerson" borderBottom ref="item1">
                     <u--input v-model="model1.userInfo.contactPerson" border="none"></u--input>
                 </u-form-item> -->
-			
+
 				<u-form-item labelWidth='180'  label="报修位置:" prop="userInfo.repairPositionName" borderBottom
 					@click="showfloor = true;" ref="item1" :required=true>
-					
+
 					<u--input  v-model="model1.userInfo.repairPositionName" disabled disabledColor="#ffffff"
 						placeholder="请选择报修位置" border="none"></u--input>
 					<u-icon slot="right" contactPerson="arrow-right"></u-icon>
@@ -50,6 +50,8 @@
 						</u-upload>
 					</view>
 				</u-form-item>
+
+
 			</u--form>
 
 
@@ -164,7 +166,7 @@
 						message: '请填写故障描述',
 						trigger: ['blur', 'change']
 					},
-					
+
 
 					'userInfo.contactPhone': [{
 							required: true,
@@ -214,62 +216,126 @@
 		},
 
 		methods: {
-			
+
 			// 删除图片
 						deletePic(event) {
 							this.fileList1.splice(event.index, 1)
 						},
-						// 新增图片
-						async afterRead(event) {
-							// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
-							let lists = [].concat(event.file)
-							let fileListLen =this.fileList1.length
-							lists.map((item) => {
-								this.fileList1.push({
-									...item,
-									status: 'uploading',
-									message: '上传中'
-								})
-							})
-							
-							  console.log('111111111111111111',this.fileList1)
-							for (let i = 0; i < lists.length; i++) {
-								const result = await this.uploadFilePromise(lists[i].url)
-													
-								let item = this.fileList1[fileListLen]
-								this.fileList1.splice(fileListLen, 1, Object.assign(item, {
-									status: 'success',
-									message: '',
-									url: result
-								}))
-								fileListLen++
-							}
-						},
-						uploadFilePromise(url) {
-							  console.log('999',url)
-							this.$api.post('/uploadFile',{data:url})
-							.then(res=>{
-							  console.log('111111111111111111',res)
-							})
-							
-							
-							// return new Promise((resolve, reject) => {
-							// 	let a = uni.uploadFile({
-							// 		url: BaseApi.BaseApi + '/uploadFile', 
-							// 		filePath: url,
-							// 		name: 'file',
-							// 		formData: {
-							// 			user: 'test'
-							// 		},
-							// 		success: (res) => {
-							// 			setTimeout(() => {
-							// 				resolve(res.data.data)
-							// 			}, 1000)
-							// 		}
-							// 	});
-							// })
+
+			// 新增图片
+			async afterRead(event) {
+
+				// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
+				let lists = [].concat(event.file)
+				let fileListLen = this.fileList1.length
+				lists.map((item) => {
+					this.fileList1.push({
+						...item,
+						status: 'uploading',
+						message: '上传中'
+					})
+				})
+				//console.log(this.fileList1)
+				for (let i = 0; i < lists.length; i++) {
+					const result = await this.uploadFilePromise(lists[i].url)
+					let item = this.fileList1[fileListLen]
+					this.fileList1.splice(fileListLen, 1, Object.assign(item, {
+						status: 'success',
+						message: '',
+						rl: result
+					}))
+					fileListLen++
+				}
+
+				console.log(this.fileList1);
+				//this.problemPhotos=this.fileList1;
+			},
+			uploadFilePromise(url) {
+				console.log('111111111111111111',url)
+				let _self=this;
+				return new Promise((resolve, reject) => {
+					let a = uni.uploadFile({
+						url:  BaseApi.BaseApi + '/uploadFile',
+						header: {
+							'content-type': 'application/json',
+							"token": uni.getStorageSync('tokendata'),
 						},
-			
+						filePath: url,
+						name: 'file',
+						success: (res) => {
+							let result = JSON.parse(res.data)
+							//	console.log(result.fileName);
+							setTimeout(() => {
+								resolve(JSON.parse(res.data).fileName)
+							}, 1000)
+						}
+					});
+				})
+			},
+
+
+
+
+						// 新增图片
+						// async afterRead(event) {
+						// 	// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
+						// 	let lists = [].concat(event.file)
+						// 	let fileListLen =this.fileList1.length
+						// 	lists.map((item) => {
+						// 		this.fileList1.push({
+						// 			...item,
+						// 			status: 'uploading',
+						// 			message: '上传中'
+						// 		})
+						// 	})
+						//
+						// 	//  console.log('111111111111111111',this.fileList1)
+						// 	for (let i = 0; i < lists.length; i++) {
+						// 		const result = await this.uploadFilePromise(lists[i])
+						//
+						// 		let item = this.fileList1[fileListLen]
+						// 		this.fileList1.splice(fileListLen, 1, Object.assign(item, {
+						// 			status: 'success',
+						// 			message: '',
+						// 			url: result
+						// 		}))
+						// 		fileListLen++
+						// 	}
+						// },
+						// uploadFilePromise(url) {
+						// 	  console.log('999',url)
+						//
+						// 	//  这时候我们创建一个formData对象实例
+						// 	const formData = new FormData();
+						// 	formData.append("file", url);
+						// 	console.log('222222',formData)
+						//
+						// 	//
+						// 	// this.$api.post('/uploadFile',{file:url})
+						// 	// .then(res=>{
+						// 	//   console.log('111111111111111111',res)
+						// 	// })
+						//
+						//
+						//
+						//
+						// 	// return new Promise((resolve, reject) => {
+						// 	// 	let a = uni.uploadFile({
+						// 	// 		url: BaseApi.BaseApi + '/uploadFile',
+						// 	// 		filePath: url,
+						// 	// 		name: 'file',
+						// 	// 		formData: {
+						// 	// 			user: 'test'
+						// 	// 		},
+						// 	// 		success: (res) => {
+						// 	// 			setTimeout(() => {
+						// 	// 				resolve(res.data.data)
+						// 	// 			}, 1000)
+						// 	// 		}
+						// 	// 	});
+						// 	// })
+						// },
+
 
 			changeHandler(e) {
 				const {
@@ -372,13 +438,13 @@
 					    delta: 1
 					});
 					})
-					
-					
+
+
 				}).catch(errors => {
 					uni.$u.toast('校验失败')
 				})
 
-				
+
 			},
 
 			typeconfirm(e) {
@@ -428,5 +494,5 @@
 		margin: 20rpx;
 		margin-top: 0px;
 	}
-	
+
 </style>

+ 1 - 1
pages/index/index.vue

@@ -227,7 +227,7 @@
 
 		},
 		onPullDownRefresh() {
-			console.log('我下拉刷新页面了!!!!!!!!!!!!!!!', )
+		//	console.log('我下拉刷新页面了!!!!!!!!!!!!!!!', )
 			this.getalldata();
 
 		},

+ 49 - 15
pages/login/login.vue

@@ -22,9 +22,9 @@
 
 			<!-- <view class="rowinputcaptcha">
 				<u-icon name="hourglass" color="#2979ff" size="50" style="padding: 0 20rpx;"></u-icon>
-				<input class="captchainput" v-model="captcha"  placeholder="验证码"/>			
+				<input class="captchainput" v-model="captcha"  placeholder="验证码"/>
 				<u--image :showLoading="true" :src="captchaPath" width="150px" height="35px" @click="getCaptcha"></u--image>
-				
+
 			</view> -->
 
 			<view class="menu-link">
@@ -63,14 +63,14 @@
 		},
 
 		onLoad() {
-			//	 this.getCaptcha(); 
+			//	 this.getCaptcha();
 		},
 
 		methods: {
-			// 获取验证码			  
+			// 获取验证码
 			//  getCaptcha() {
 			//    this.uuid = getUUID();
-			// this.captchaPath =BaseApi.BaseApi+ `/captcha?uuid=${this.uuid}`; 
+			// this.captchaPath =BaseApi.BaseApi+ `/captcha?uuid=${this.uuid}`;
 
 			//  },
 
@@ -135,27 +135,61 @@
 			getpermissions() {
 				console.log('权限功能', )
 				//获取用户权限功能
-				this.$api.get('/menu/permissions', {})
-					.then(res1 => {
-						uni.setStorageSync('ButtonPermissions', res1.data.data); //权限列表
-
+				return new Promise((resolve, reject) => {
+					this.$api.get('/menu/permissions', {}).then((res) => {
+							uni.setStorageSync('ButtonPermissions', res.data.data);
+						resolve(res);
+						console.log('111111111111111111', res)
+
+					}).catch(e => {
+						reject(e)
 					})
+				});
+
+
+				// this.$api.get('/menu/permissions', {})
+				// 	.then(res1 => {
+				// 		uni.setStorageSync('ButtonPermissions', res1.data.data); //权限列表
+				// 	})
 			},
 			getDictList() {
 				//获取字典列表, 添加并全局变量保存
-				this.$api.get('/all', {})
-					.then(res => {
-						//  console.log('88888', res.data.data)
+				return new Promise((resolve, reject) => {
+					this.$api.get('/all', {}).then((res) => {
 						uni.setStorageSync('getDictDataList', res.data.data);
+						resolve(res);
+						console.log('222222', res)
+
+					}).catch(e => {
+						reject(e)
 					})
+				});
+
+
+				// this.$api.get('/all', {})
+				// 	.then(res => {
+				// 		//  console.log('88888', res.data.data)
+				// 		uni.setStorageSync('getDictDataList', res.data.data);
+				// 	})
 			},
 			getuserInfo() {
 				//获取用户信息
-				this.$api.get('/user/userInfo', {})
-					.then(res => {
-						//  console.log('88888', res.data.data)
+				return new Promise((resolve, reject) => {
+					this.$api.get('/user/userInfo', {}).then((res) => {
 						uni.setStorageSync('getuserInfo', res.data.data);
+						resolve(res);
+						console.log('333333', res)
+
+					}).catch(e => {
+						reject(e)
 					})
+				});
+
+				// this.$api.get('/user/userInfo', {})
+				// 	.then(res => {
+				// 		//  console.log('88888', res.data.data)
+				// 		uni.setStorageSync('getuserInfo', res.data.data);
+				// 	})
 			},
 
 			// 密码显示/密码隐藏

二進制
static/management/sp.png


+ 5 - 3
uni.scss

@@ -15,7 +15,7 @@
 
 .OutermostLayer {
 		width: 690rpx;
-		margin: 0rpx auto;	
+		margin: 0rpx auto;
 		background-color: #fff;
 		border-radius: 9rpx;
 	}
@@ -35,8 +35,10 @@
 	.u-cell__title-text {
 		color: #ffffff;
 	}
-} 
-
+}
+::v-deep .u-picker__view__column__item{
+	font-size: 20px!important;
+}
 
 
 /* 颜色变量 */

文件差異過大導致無法顯示
+ 2 - 2
unpackage/cache/wgt/__UNI__FF40C0C/app-config-service.js


文件差異過大導致無法顯示
+ 4 - 4
unpackage/cache/wgt/__UNI__FF40C0C/app-service.js


文件差異過大導致無法顯示
+ 1 - 1
unpackage/cache/wgt/__UNI__FF40C0C/app-view.js


文件差異過大導致無法顯示
+ 2 - 2
unpackage/dist/build/app-plus/app-config-service.js


文件差異過大導致無法顯示
+ 4 - 4
unpackage/dist/build/app-plus/app-service.js


文件差異過大導致無法顯示
+ 1 - 1
unpackage/dist/build/app-plus/app-view.js


文件差異過大導致無法顯示
+ 37627 - 0
utils/ezuikit.js