.gitignore
@@ -9,4 +9,4 @@ /build /captures .externalNativeBuild /app/release/ /app/release .idea/assetWizardSettings.xml
@@ -5,7 +5,316 @@ <map> <entry key="imageWizard"> <value> <PersistentState /> <PersistentState> <option name="children"> <map> <entry key="imageAssetPanel"> <value> <PersistentState> <option name="children"> <map> <entry key="actionbar"> <value> <PersistentState> <option name="children"> <map> <entry key="clipArt"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> <entry key="imagePath" value="C:\Users\feiyu\AppData\Local\Temp\ic_android_black_24dp.xml" /> <entry key="opacityPercent" value="60" /> </map> </option> </PersistentState> </value> </entry> <entry key="text"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> </map> </option> </PersistentState> </value> </entry> <entry key="textAsset"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> </map> </option> </PersistentState> </value> </entry> </map> </option> </PersistentState> </value> </entry> <entry key="launcher"> <value> <PersistentState> <option name="children"> <map> <entry key="foregroundClipArt"> <value> <PersistentState> <option name="values"> <map> <entry key="imagePath" value="C:\Users\feiyu\AppData\Local\Temp\ic_android_black_24dp.xml" /> </map> </option> </PersistentState> </value> </entry> <entry key="foregroundImage"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> </map> </option> </PersistentState> </value> </entry> <entry key="foregroundText"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> </map> </option> </PersistentState> </value> </entry> <entry key="foregroundTextAsset"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> </map> </option> </PersistentState> </value> </entry> </map> </option> </PersistentState> </value> </entry> <entry key="launcherLegacy"> <value> <PersistentState> <option name="children"> <map> <entry key="clipArt"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> <entry key="imagePath" value="C:\Users\feiyu\AppData\Local\Temp\ic_android_black_24dp.xml" /> </map> </option> </PersistentState> </value> </entry> <entry key="text"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> </map> </option> </PersistentState> </value> </entry> <entry key="textAsset"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> </map> </option> </PersistentState> </value> </entry> </map> </option> </PersistentState> </value> </entry> <entry key="notification"> <value> <PersistentState> <option name="children"> <map> <entry key="clipArt"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> <entry key="imagePath" value="C:\Users\feiyu\AppData\Local\Temp\baseline_article_24.xml" /> </map> </option> </PersistentState> </value> </entry> <entry key="clipartAsset"> <value> <PersistentState> <option name="values"> <map> <entry key="url" value="file:/$PROJECT_DIR$/../../../../androidsdk/sdk_new/icons/material/materialicons/article/baseline_article_24.xml" /> </map> </option> </PersistentState> </value> </entry> <entry key="image"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> </map> </option> </PersistentState> </value> </entry> <entry key="text"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> </map> </option> </PersistentState> </value> </entry> <entry key="textAsset"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> </map> </option> </PersistentState> </value> </entry> </map> </option> <option name="values"> <map> <entry key="outputName" value="ic_info_black_24dp" /> </map> </option> </PersistentState> </value> </entry> <entry key="tvBanner"> <value> <PersistentState> <option name="children"> <map> <entry key="foregroundText"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> </map> </option> </PersistentState> </value> </entry> </map> </option> </PersistentState> </value> </entry> <entry key="tvChannel"> <value> <PersistentState> <option name="children"> <map> <entry key="foregroundClipArt"> <value> <PersistentState> <option name="values"> <map> <entry key="imagePath" value="C:\Users\feiyu\AppData\Local\Temp\ic_android_black_24dp.xml" /> </map> </option> </PersistentState> </value> </entry> <entry key="foregroundImage"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> </map> </option> </PersistentState> </value> </entry> <entry key="foregroundText"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> </map> </option> </PersistentState> </value> </entry> <entry key="foregroundTextAsset"> <value> <PersistentState> <option name="values"> <map> <entry key="color" value="000000" /> </map> </option> </PersistentState> </value> </entry> </map> </option> </PersistentState> </value> </entry> </map> </option> <option name="values"> <map> <entry key="outputIconType" value="NOTIFICATION" /> </map> </option> </PersistentState> </value> </entry> </map> </option> </PersistentState> </value> </entry> <entry key="vectorWizard"> .idea/misc.xml
@@ -3,10 +3,13 @@ <component name="DesignSurface"> <option name="filePathToZoomLevelMap"> <map> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable-anydpi-v24/ic_info_black_24dp.xml" value="0.336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable-xhdpi/bg_ripple.xml" value="0.336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/bg_btngroup.xml" value="0.175" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/ic_baseline_backspace_24.xml" value="0.175" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/ic_baseline_content_copy_24.xml" value="0.175" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/ic_group_black_24dp.xml" value="0.336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/ic_playlist_add_check_blue_400_24dp.xml" value="0.336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/ic_unfold_more_black_20dp.xml" value="0.175" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/point_background.xml" value="0.336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/selector_bg_blue_or_white.xml" value="0.336" /> @@ -21,8 +24,15 @@ <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/selector_show_hide_white.xml" value="0.336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/shap_stroke_bottom.xml" value="0.336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/shape_bg_gradient_reverse.xml" value="0.31145833333333334" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/shape_blue.xml" value="0.336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/shape_button_green.xml" value="0.309375" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/shape_circle_board.xml" value="0.336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/shape_gray.xml" value="0.336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/shape_green.xml" value="0.336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/shape_oval_blue.xml" value="0.336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/shape_red_board.xml" value="0.336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/shape_red_task_check.xml" value="0.336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/shape_yellow.xml" value="0.336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/activity_base_map.xml" value="0.29739583333333336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/activity_camera.xml" value="0.33" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/activity_main.xml" value="0.3338541666666667" /> @@ -40,17 +50,23 @@ <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/activity_share_problem.xml" value="0.33" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/activity_task.xml" value="0.29739583333333336" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/activity_upload_media_files.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_adjust_task.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_alert.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_alert_2.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_anysis_sub_progress.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_bottom_sheet.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_camera.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_camera_2.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_camera_3.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_change_password.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_new_photo.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_problem_list.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_scene_account.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_scene_history.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_scene_list.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_scene_subinfo.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/dialog_take_evidence.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/fragment_analysis_over_view.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/fragment_home.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/fragment_inspection2.xml" value="0.3338541666666667" /> <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/fragment_inspection_content.xml" value="0.3338541666666667" /> app/release/release/output.json
¶Ô±ÈÐÂÎļþ @@ -0,0 +1 @@ [{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":34,"versionName":"1.1.14.18","enabled":true,"outputFile":"appsupervision-release.apk","fullName":"release","baseName":"release"},"path":"appsupervision-release.apk","properties":{}}] app/release/release/supervision_1.1.14.18-release.apkBinary files differ
app/src/main/java/cn/flightfeather/thirdappmodule/bean/vo/ChangeRateVo.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ package cn.flightfeather.thirdappmodule.bean.vo /** * @author riku * Date: 2025/10/27 */ class ChangeRateVo { } app/src/main/java/cn/flightfeather/thirdappmodule/bean/vo/SceneConstructionSite.kt
@@ -1,10 +1,107 @@ package cn.flightfeather.thirdappmodule.bean.vo import org.greenrobot.greendao.annotation.Id import java.util.* /** * 建çå·¥å°ä¿¡æ¯ * @author riku * Date: 2025/10/17 */ class SceneConstructionSite : BaseSubScene { /** * åºæ¯idï¼ä¸»é® */ var sGuid: String? = null /** * å·¥ç¨ç±»å */ var csProjectType: String? = null /** * æ½å·¥é¶æ®µ */ var csStatus: String? = null /** * æ½å·¥å¼å§æ¶é´ */ var csStartTime: String? = null /** * æ½å·¥ç»ææ¶é´ */ var csEndTime: String? = null /** * å©ä½å·¥æ */ var csLeftTime: String? = null /** * å å°é¢ç§¯ */ var csFloorSpace: String? = null /** * æ½å·¥é¢ç§¯ */ var csConstructionArea: String? = null /** * æ¯ææ½å·¥é¢ç§¯ */ var csConstructionAreaPerMonth: String? = null /** * ä¸ä¸»åä½ */ var csEmployerUnit: String? = null /** * ä¸ä¸»åä½è系人 */ var csEmployerContacts: String? = null /** * ä¸ä¸»åä½è系人çµè¯ */ var csEmployerContactsTel: String? = null /** * æ½å·¥åä½ */ var csConstructionUnit: String? = null /** * æ½å·¥åä½è系人 */ var csConstructionContacts: String? = null /** * æ½å·¥åä½è系人çµè¯ */ var csConstructionContactsTel: String? = null /** * å®å ¨å */ var csSecurityOfficer: String? = null /** * å®å ¨åçµè¯ */ var csSecurityOfficerTel: String? = null var csUpdateTime: Date? = null var siExtension1: String? = null var siExtension2: String? = null var siExtension3: String? = null var siRemark: String? = null } app/src/main/java/cn/flightfeather/thirdappmodule/bean/vo/SceneDetailStrVo.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package cn.flightfeather.thirdappmodule.bean.vo import cn.flightfeather.thirdappmodule.bean.entity.Scense /** * @author riku * Date: 2025/10/20 */ class SceneDetailStrVo { // åºæ¯åºæ¬ä¿¡æ¯ var scene:Scense? = null // åºæ¯ç¹æä¿¡æ¯ï¼æ ¹æ®åºæ¯ç±»åä¸åï¼å±æ§åä¸ç¸å var subScene: String? = null } app/src/main/java/cn/flightfeather/thirdappmodule/bean/vo/SceneDetailVo.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package cn.flightfeather.thirdappmodule.bean.vo import cn.flightfeather.thirdappmodule.bean.entity.Scense /** * @author riku * Date: 2025/10/20 */ class SceneDetailVo<T : BaseSubScene> { // åºæ¯åºæ¬ä¿¡æ¯ var scene:Scense? = null // åºæ¯ç¹æä¿¡æ¯ï¼æ ¹æ®åºæ¯ç±»åä¸åï¼å±æ§åä¸ç¸å var subScene: T? = null } app/src/main/java/cn/flightfeather/thirdappmodule/bean/vo/TypicalSceneVo.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ package cn.flightfeather.thirdappmodule.bean.vo import java.util.* /** * åºæ¯å ¸å工尿 åµ * @author riku * Date: 2025/10/27 */ class TypicalSceneVo { // è¯éæ¶é´ var time: Date? = null // æ¯å¦æ¶å ¸åå·¥å° var typical: Boolean = false } app/src/main/java/cn/flightfeather/thirdappmodule/httpservice/DomainItemService.kt
@@ -23,4 +23,7 @@ */ @GET("domainitem/mediaFileType") fun getMediaFileType(@Query("sceneType") sceneType: Int): Observable<Response<Map<String?, String?>>> @GET("domainitem/name") fun getItemByName(@Query("name") name: String): Observable<Response<ArrayList<Domainitem>>> } app/src/main/java/cn/flightfeather/thirdappmodule/httpservice/EvaluationService.java
@@ -4,6 +4,7 @@ import cn.flightfeather.thirdappmodule.bean.entity.Evaluation; import cn.flightfeather.thirdappmodule.bean.entity.Itemevaluation; import cn.flightfeather.thirdappmodule.model.bean.BaseResponse; import io.reactivex.Observable; import okhttp3.ResponseBody; import retrofit2.Call; @@ -38,6 +39,20 @@ @POST("evaluation/rankoftown") Call<List<Evaluation>> getRankofTown(@Query("tguid") String tguid, @Query("scensetypeid") String scensetypeid); /** * æ ¹æ®åºæ¯è·ååå²è¯ä¼°å¾å * @param sceneId åºæ¯ä¸»é®id * @param page 页ç * @param pageSize æ¯é¡µæ°é * @return åå²è¯ä¼°å¾å */ @GET("evaluation/byScene") Observable<Response<BaseResponse<List<Evaluation>>>> getEvaluationListByScene( @Query("sceneId") String sceneId, @Query("page") int page, @Query("pageSize") int pageSize ); @PUT("itemevaluation/addlist/") Call<ResponseBody> putItemEvaluationList(@Body List<Itemevaluation> itemevaluationList); app/src/main/java/cn/flightfeather/thirdappmodule/httpservice/ScenseService.java
@@ -4,6 +4,10 @@ import cn.flightfeather.thirdappmodule.bean.entity.Scense; import cn.flightfeather.thirdappmodule.bean.entity.Task; import cn.flightfeather.thirdappmodule.bean.vo.BaseSubScene; import cn.flightfeather.thirdappmodule.bean.vo.SceneDetailStrVo; import cn.flightfeather.thirdappmodule.bean.vo.SceneDetailVo; import cn.flightfeather.thirdappmodule.model.bean.BaseResponse; import io.reactivex.Observable; import okhttp3.ResponseBody; import retrofit2.Call; @@ -41,4 +45,10 @@ @POST("scense/getByTask") Observable<Response<ArrayList<Scense>>> getByTaskId(@Body Task task, @Query("mode") int mode); @GET("scense/detail") <T extends BaseSubScene> Observable<Response<BaseResponse<SceneDetailVo<T>>>> getSceneDetail(@Query("sceneId") String sceneId); @POST("scense/detail/update") Observable<Response<BaseResponse<String>>> updateSceneDetail(@Query("sceneTypeId") int typeId, @Body SceneDetailStrVo vo); } app/src/main/java/cn/flightfeather/thirdappmodule/model/bean/BaseResponse.kt
@@ -5,14 +5,15 @@ * Date: 2020/8/4 * ç½ç»è¯·æ±è¿åæ°æ®åºç±» */ data class BaseResponse<T>( val success: Boolean, val message: String, val head: DataHead? = null, val data: T? ) class BaseResponse<T> { var success: Boolean = false var message: String? = null var head: DataHead? = null var data: T? = null } data class DataHead( var page: Int = 1, var totalPage: Int = 1 ) class DataHead { var page: Int = 1 var totalPage: Int = 1 var totalCount: Int = 1 } app/src/main/java/cn/flightfeather/thirdappmodule/module/inspection/InspectionDetailActivity.kt
@@ -461,6 +461,13 @@ CameraPosition(LatLng(s.latitude, s.longitude), zoomLevel, 0F, 0F) ) ) // 2025.10.22 å½åºæ¯æ¯å·¥å°ç±»åæ¶ï¼æ¾ç¤ºä¿®æ¹æ½å·¥é¶æ®µæé® if (s.typeid.toString() == Constant.SCENE_TYPE_SITE) { scene_status.visibility = View.VISIBLE } else { scene_status.visibility = View.GONE } } /** @@ -820,6 +827,16 @@ override fun onClick(v: View?) { when (v?.id) { R.id.scene_detail -> { } // ä¿®æ¹å·¥å°æ½å·¥é¶æ®µ R.id.scene_status ->{ val intent = Intent(this, MenuSceneInfoActivity::class.java).apply { putExtra("scene", viewModel.scene.value) } startActivity(intent) } // æ¥çæè·åç¨æ·è´¦æ·ä¿¡æ¯ R.id.user_account -> { val intent = Intent(this, MenuSceneAccountActivity::class.java).apply { app/src/main/java/cn/flightfeather/thirdappmodule/module/inspection/MenuGradeViewModel.kt
@@ -19,7 +19,7 @@ */ class MenuGradeViewModel : BaseViewModel() { private val evaluationRepository = EvaluationRepository() private val evaluationRepository = EvaluationRepository.instance val ruleItemList = MutableLiveData<ArrayList<EvaluationsubruleVo>>() app/src/main/java/cn/flightfeather/thirdappmodule/module/inspection/MenuSceneHistoryActivity.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,56 @@ package cn.flightfeather.thirdappmodule.module.inspection import android.arch.lifecycle.ViewModelProviders import android.os.Bundle import android.view.View import cn.flightfeather.thirdappmodule.R import cn.flightfeather.thirdappmodule.bean.entity.Scense import cn.flightfeather.thirdappmodule.module.base.BaseActivity import cn.flightfeather.thirdappmodule.module.task.SceneDetailViewModel import kotlinx.android.synthetic.main.dialog_scene_history.* import kotlinx.android.synthetic.main.fragment_analysis_over_view.* class MenuSceneHistoryActivity : BaseActivity() { private var scene: Scense? = null override fun getLayoutId(): Int = R.layout.dialog_scene_history lateinit var viewModel: MenuSceneHistoryViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) viewModel = ViewModelProviders.of(this).get(SceneDetailViewModel::class.java) scene = intent.getSerializableExtra("scene") as Scense? initUI() initObserver() initListener() viewModel.getSceneStatus { scene?.let { viewModel.getSceneDetail(it) } } } private fun initUI() { view_waiting.visibility = View.VISIBLE scene?.let { tv_status.text = StringBuilder(it.type + getString(R.string.scene_status)) } } private fun initObserver() { } private fun initListener() { fab_close.setOnClickListener { this.finish() } } } app/src/main/java/cn/flightfeather/thirdappmodule/module/inspection/MenuSceneHistoryViewModel.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,50 @@ package cn.flightfeather.thirdappmodule.module.inspection import android.arch.lifecycle.MutableLiveData import cn.flightfeather.thirdappmodule.bean.entity.Evaluation import cn.flightfeather.thirdappmodule.bean.vo.ChangeRateVo import cn.flightfeather.thirdappmodule.bean.vo.TypicalSceneVo import cn.flightfeather.thirdappmodule.common.net.ResultCallBack import cn.flightfeather.thirdappmodule.module.base.BaseViewModel import cn.flightfeather.thirdappmodule.repository.EvaluationRepository import org.jetbrains.anko.toast /** * @author riku * Date: 2025/10/27 */ class MenuSceneHistoryViewModel : BaseViewModel() { private val evaluationRepository = EvaluationRepository.instance // 1. åå²è¯ä¼°æ åµ val evaluationList = MutableLiveData<List<Evaluation>>() /** * è·ååä¸ä¸ªæçè¯ä¼°æ»å */ fun getEvaluationList(sceneId:String) { evaluationRepository.getEvaluationByScene(sceneId, resultCallBack = object : ResultCallBack<List<Evaluation>> { override fun onSuccess(result: List<Evaluation>?) { evaluationList.value = result } override fun onFailure() { application.toast("è·åè¯å失败") } }) } // 2. å ¸å工尿 åµ val typicalScene = MutableLiveData<List<TypicalSceneVo>>() fun getTypicalScene(sceneId: String) { typicalScene.value = listOf() } // 3. æ´æ¹æç val changeRate = MutableLiveData<List<ChangeRateVo>>() fun getChangeRate() { } } app/src/main/java/cn/flightfeather/thirdappmodule/module/inspection/MenuSceneInfoActivity.kt
@@ -1,17 +1,29 @@ package cn.flightfeather.thirdappmodule.module.inspection import android.annotation.SuppressLint import android.arch.lifecycle.Observer import android.arch.lifecycle.ViewModelProviders import android.os.Bundle import android.support.v7.widget.LinearLayoutManager import android.view.LayoutInflater import android.view.View import cn.flightfeather.thirdappmodule.R import cn.flightfeather.thirdappmodule.adapter.AllRecyclerViewAdapter import cn.flightfeather.thirdappmodule.bean.entity.Scense import cn.flightfeather.thirdappmodule.bean.vo.RankVo import cn.flightfeather.thirdappmodule.bean.vo.SceneConstructionSite import cn.flightfeather.thirdappmodule.bean.vo.TaskFrequencyVo import cn.flightfeather.thirdappmodule.module.base.BaseActivity import cn.flightfeather.thirdappmodule.module.task.SceneDetailViewModel import cn.flightfeather.thirdappmodule.util.CommonUtils import cn.flightfeather.thirdappmodule.util.Constant import kotlinx.android.synthetic.main.dialog_scene_subinfo.* import kotlinx.android.synthetic.main.fragment_analysis_over_view.* class MenuSceneInfoActivity : BaseActivity() { private var scene: Scense? = null private var statusAdapter: AllRecyclerViewAdapter<String>? = null override fun getLayoutId(): Int = R.layout.dialog_scene_subinfo @@ -27,6 +39,10 @@ initUI() initObserver() initListener() viewModel.getSceneStatus { scene?.let { viewModel.getSceneDetail(it) } } } private fun initUI() { @@ -38,27 +54,47 @@ } private fun initObserver() { viewModel.aName.observe(this, Observer { viewModel.subScene.observe(this, Observer { view_waiting.visibility = View.GONE if (it == null) { group_no_data.visibility = View.VISIBLE group_s_info.visibility = View.GONE } else { group_no_data.visibility = View.GONE group_s_info.visibility = View.VISIBLE tv_s_account_c.text = it val status = when (scene?.typeid.toString()) { Constant.SCENE_TYPE_SITE -> { (it as SceneConstructionSite?)?.siExtension1 } else -> "" } var index = viewModel.sceneStatus.indexOf(status) if (index == -1) index = 0 statusAdapter?.run { setSelected(true, index) notifyItemChanged(index) } }) } private fun initListener() { tv_create_account.setOnClickListener { view_waiting.visibility = View.VISIBLE sceneId?.let { viewModel.createAccount(it) } statusAdapter = object : AllRecyclerViewAdapter<String>(viewModel.sceneStatus, android.R.layout.simple_list_item_single_choice, this) { @SuppressLint("NotifyDataSetChanged") override fun bindView(holder: MyViewHolder?, obj: String?, isSelected: Boolean, position: Int) { holder?.setText(R.id.text1, obj) ?.setOnItemClickListener { setAllFalse() setSelected(true, position) notifyDataSetChanged() (viewModel.subScene.value as SceneConstructionSite?)?.siExtension1 = obj } } } val lm = LinearLayoutManager(this) lm.orientation = LinearLayoutManager.VERTICAL rv_status!!.layoutManager = lm rv_status!!.adapter = statusAdapter fab_close.setOnClickListener { this.finish() } fab_submit.setOnClickListener { viewModel } } } app/src/main/java/cn/flightfeather/thirdappmodule/module/task/SceneDetailViewModel.kt
@@ -2,10 +2,16 @@ import android.arch.lifecycle.MutableLiveData import cn.flightfeather.thirdappmodule.bean.entity.* import cn.flightfeather.thirdappmodule.bean.vo.BaseSubScene import cn.flightfeather.thirdappmodule.bean.vo.SceneConstructionSite import cn.flightfeather.thirdappmodule.bean.vo.SceneDetailStrVo import cn.flightfeather.thirdappmodule.bean.vo.SceneDetailVo import cn.flightfeather.thirdappmodule.common.net.ResultCallBack import cn.flightfeather.thirdappmodule.model.event.SceneEvent import cn.flightfeather.thirdappmodule.module.base.BaseViewModel import cn.flightfeather.thirdappmodule.repository.CommonRepository import cn.flightfeather.thirdappmodule.repository.SceneRepository import com.google.gson.Gson import okhttp3.ResponseBody import org.greenrobot.eventbus.EventBus import org.jetbrains.anko.toast @@ -16,6 +22,7 @@ */ class SceneDetailViewModel : BaseViewModel() { private val sceneRepository = SceneRepository() private val commonRepository = CommonRepository.instance val allProvinceList = ArrayList<Province>() val allCityList = ArrayList<City>() @@ -29,8 +36,12 @@ val allSceneTypeList = MutableLiveData<ArrayList<Domainitem>>().apply { value = ArrayList() } val subScene = MutableLiveData<> val subScene = MutableLiveData<BaseSubScene>() val sceneStatus = ArrayList<String>() /** * è·åè¡æ¿åºåå¯é项 */ fun getData() { sceneRepository.getDivision(object : ResultCallBack<Division> { override fun onSuccess(result: Division?) { @@ -57,6 +68,9 @@ }) } /** * è·ååºæ¯ç±»åå¯é项 */ fun getSceneType() { sceneRepository.getSceneType(object : ResultCallBack<ArrayList<Domainitem>> { override fun onSuccess(result: ArrayList<Domainitem>?) { @@ -109,6 +123,53 @@ }) } } fun getSceneDetail(scene: Scense?) { scene?.let { sceneRepository.getSceneDetail(it, object : ResultCallBack<SceneDetailVo<SceneConstructionSite>> { override fun onSuccess(result: SceneDetailVo<SceneConstructionSite>?) { result?.let { r -> subScene.value = r.subScene } } override fun onFailure() { application.toast("æ½å·¥é¶æ®µæ²¡æè®°å½") } }) } } fun updateSceneDetail(scene: Scense?, subScene: BaseSubScene) { scene?.let { val vo = SceneDetailStrVo().apply { this.scene = it this.subScene = Gson().toJson(subScene) } sceneRepository.updateSceneDetail(vo, object : ResultCallBack<String> { override fun onSuccess(result: String?) { application.toast("æ½å·¥é¶æ®µä¿®æ¹æå") } override fun onFailure() { application.toast("æ½å·¥é¶æ®µä¿®æ¹å¤±è´¥") } }) } } fun getSceneStatus(success: () -> Unit) { commonRepository.getDomainItem("å·¥å°å·¥æ", object : ResultCallBack<ArrayList<Domainitem>> { override fun onSuccess(result: ArrayList<Domainitem>?) { result?.let { arr -> sceneStatus.addAll(arr.map { it.text }) success() } } override fun onFailure() { application.toast("æ½å·¥é¶æ®µé项æ è®°å½") } }) } } data class Division( app/src/main/java/cn/flightfeather/thirdappmodule/repository/CommonRepository.kt
@@ -1,5 +1,6 @@ package cn.flightfeather.thirdappmodule.repository import cn.flightfeather.thirdappmodule.bean.entity.Domainitem import cn.flightfeather.thirdappmodule.common.net.ResultCallBack import cn.flightfeather.thirdappmodule.common.net.ResultObserver import cn.flightfeather.thirdappmodule.common.net.RetrofitFactory @@ -112,4 +113,21 @@ } }) } /** * æ ¹æ®å¼åç±»å«åç§°ï¼è·åå ·ä½çé项 */ fun getDomainItem(name: String, resultCallBack: ResultCallBack<ArrayList<Domainitem>>) { val service = retrofit.create(DomainItemService::class.java).getItemByName(name) RetrofitFactory.executeResult(service, object : ResultObserver<ArrayList<Domainitem>>() { override fun onSuccess(result: ArrayList<Domainitem>?) { resultCallBack.onSuccess(result) } override fun onFailure(e: Throwable, isNetWorkError: Boolean) { resultCallBack.onFailure() } }) } } app/src/main/java/cn/flightfeather/thirdappmodule/repository/EvaluationRepository.kt
@@ -9,6 +9,7 @@ import cn.flightfeather.thirdappmodule.common.net.ResultObserver import cn.flightfeather.thirdappmodule.common.net.RetrofitFactory import cn.flightfeather.thirdappmodule.httpservice.EvaluationService import cn.flightfeather.thirdappmodule.model.bean.BaseResponse import cn.flightfeather.thirdappmodule.repository.dao.EvaluationDao import io.reactivex.Observable import io.reactivex.functions.BiFunction @@ -21,10 +22,17 @@ * è¯åç¸å ³æ°æ®æä½ */ class EvaluationRepository { companion object { @JvmStatic val instance: EvaluationRepository by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { EvaluationRepository()} } private val retrofit = RetrofitFactory.instance.retrofit private val evaluationDao = EvaluationDao() /** * è·åè¯ä¼°æ»è§å */ fun getEvaluationRule( provinceCode: String, cityCode: String, districtCode: String, sceneTypeId: Byte, resultCallBack: ResultCallBack<List<Evaluationrule>>) { @@ -44,11 +52,36 @@ }) } /** * æ ¹æ®å·¡æ¥è®°å½idè·åè¯ä¼°æ»å */ fun getEvaluation(inspectionGuid: String, resultCallBack: ResultCallBack<List<Evaluation>>) { retrofit.create(EvaluationService::class.java) .findByInspectionId(inspectionGuid).enqueue(ResponseBodyCallBack(resultCallBack)) } /** * æ ¹æ®åºæ¯idè·åè¯ä¼°æ»å */ fun getEvaluationByScene(sceneId: String, page: Int = 1, pageSize: Int = 4, resultCallBack: ResultCallBack<List<Evaluation>>) { val service = retrofit.create(EvaluationService::class.java).getEvaluationListByScene(sceneId, page, pageSize) RetrofitFactory.executeResult(service, object : ResultObserver<BaseResponse<List<Evaluation>>>() { override fun onPage(current: Int, total: Int) { super.onPage(current, total) resultCallBack.onPage(current, total) } override fun onSuccess(result: BaseResponse<List<Evaluation>>?) { resultCallBack.onSuccess(result?.data) } override fun onFailure(e: Throwable, isNetWorkError: Boolean) { resultCallBack.onFailure() } }) } fun getRuleItem(evaluationruleGuid: String, subTaskGuid: String,resultCallBack: ResultCallBack<ArrayList<EvaluationsubruleVo>>) { val dbService = evaluationDao.getEvaluationSubRule(evaluationruleGuid).map { val list = it.map { app/src/main/java/cn/flightfeather/thirdappmodule/repository/SceneRepository.kt
@@ -1,14 +1,19 @@ package cn.flightfeather.thirdappmodule.repository import cn.flightfeather.thirdappmodule.bean.entity.* import cn.flightfeather.thirdappmodule.bean.vo.BaseSubScene import cn.flightfeather.thirdappmodule.bean.vo.SceneDetailStrVo import cn.flightfeather.thirdappmodule.bean.vo.SceneDetailVo import cn.flightfeather.thirdappmodule.common.net.ResponseBodyCallBack import cn.flightfeather.thirdappmodule.common.net.ResultCallBack import cn.flightfeather.thirdappmodule.common.net.ResultObserver import cn.flightfeather.thirdappmodule.common.net.RetrofitFactory import cn.flightfeather.thirdappmodule.httpservice.ScenseService import cn.flightfeather.thirdappmodule.model.bean.BaseResponse import cn.flightfeather.thirdappmodule.module.task.Division import cn.flightfeather.thirdappmodule.repository.dao.DomainDao import cn.flightfeather.thirdappmodule.repository.dao.SceneDao import cn.flightfeather.thirdappmodule.util.Constant import io.reactivex.Observable import io.reactivex.functions.Function4 import okhttp3.ResponseBody @@ -55,16 +60,16 @@ val dbService4 = domainDao.getTown() val zipService = Observable.zip(dbService1, dbService2, dbService3, dbService4, Function4<List<Province>, List<City>, List<District>, List<Town>, Response<Division>> { t1, t2, t3, t4 -> Response.success( Division( ArrayList(t1), ArrayList(t2), ArrayList(t3), ArrayList(t4) ) Function4<List<Province>, List<City>, List<District>, List<Town>, Response<Division>> { t1, t2, t3, t4 -> Response.success( Division( ArrayList(t1), ArrayList(t2), ArrayList(t3), ArrayList(t4) ) }) ) }) RetrofitFactory.executeResult(zipService, object : ResultObserver<Division>() { override fun onSuccess(result: Division?) { @@ -105,7 +110,7 @@ fun putScene(scene: Scense, resultCallBack: ResultCallBack<ResponseBody>) { sceneDao.insert(scene) retrofit.create(ScenseService::class.java).putScense(scene) .enqueue(ResponseBodyCallBack(resultCallBack)) .enqueue(ResponseBodyCallBack(resultCallBack)) } /** @@ -114,7 +119,7 @@ fun updateScene(scene: Scense, resultCallBack: ResultCallBack<ResponseBody>) { sceneDao.update(scene) retrofit.create(ScenseService::class.java).updateScense(scene) .enqueue(ResponseBodyCallBack(resultCallBack)) .enqueue(ResponseBodyCallBack(resultCallBack)) } /** @@ -125,6 +130,44 @@ sceneDao.update(it) } retrofit.create(ScenseService::class.java).updateSceneList(sceneList) .enqueue(ResponseBodyCallBack(resultCallBack)) .enqueue(ResponseBodyCallBack(resultCallBack)) } /** * è·ååºæ¯è¯¦æ ï¼å å«åºç¡ä¿¡æ¯ååºæ¯ç¹æä¿¡æ¯ */ fun <T : BaseSubScene> getSceneDetail(scene: Scense, resultCallBack: ResultCallBack<SceneDetailVo<T>>) { val sceneService = when (scene.typeid.toString()) { Constant.SCENE_TYPE_SITE -> retrofit.create(ScenseService::class.java).getSceneDetail<T>(scene.guid) else -> retrofit.create(ScenseService::class.java).getSceneDetail<T>(scene.guid) } RetrofitFactory.executeResult(sceneService, object : ResultObserver<BaseResponse<SceneDetailVo<T>>>() { override fun onSuccess(result: BaseResponse<SceneDetailVo<T>>?) { resultCallBack.onSuccess(result?.data) } override fun onFailure(e: Throwable, isNetWorkError: Boolean) { resultCallBack.onFailure() } }) } /** * æ´æ°åºæ¯è¯¦æ */ fun updateSceneDetail(vo: SceneDetailStrVo, resultCallBack: ResultCallBack<String>) { vo.scene ?: return val sceneService = retrofit.create(ScenseService::class.java).updateSceneDetail(vo.scene!!.typeid.toInt(), vo) RetrofitFactory.executeResult(sceneService, object : ResultObserver<BaseResponse<String>>() { override fun onSuccess(result: BaseResponse<String>?) { resultCallBack.onSuccess(result?.data) } override fun onFailure(e: Throwable, isNetWorkError: Boolean) { resultCallBack.onFailure() } }) } } app/src/main/res/drawable-anydpi-v24/ic_info_black_24dp.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24" android:tint="#FFFFFF"> <group android:scaleX="0.92" android:scaleY="0.92" android:translateX="0.96" android:translateY="0.96"> <path android:fillColor="@android:color/white" android:pathData="M19,3L5,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM14,17L7,17v-2h7v2zM17,13L7,13v-2h10v2zM17,9L7,9L7,7h10v2z"/> </group> </vector> app/src/main/res/drawable-hdpi/ic_info_black_24dp.png
app/src/main/res/drawable-mdpi/ic_info_black_24dp.png
app/src/main/res/drawable-xhdpi/ic_info_black_24dp.png
app/src/main/res/drawable-xxhdpi/ic_info_black_24dp.png
app/src/main/res/layout/dialog_scene_history.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,221 @@ <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v7.widget.CardView android:id="@+id/cv_dialog_main" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="12dp" android:layout_marginTop="30dp" android:layout_marginRight="12dp" android:layout_marginBottom="40dp" app:cardCornerRadius="6dp" app:cardElevation="7dp"> <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="@dimen/dimen16"> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="å岿 åµ" android:textColor="@color/primary_text" android:textSize="@dimen/textSize_18" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <ProgressBar android:id="@+id/view_waiting" android:layout_width="@dimen/fab_margin" android:layout_height="@dimen/fab_margin" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" /> <android.support.constraint.ConstraintLayout android:id="@+id/cl_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintTop_toBottomOf="@id/tv_title"> <TextView android:id="@+id/tv_title_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="@dimen/dimen4" android:paddingBottom="@dimen/dimen4" android:text="1. ç°åºè¯å" android:textColor="@color/main_color_1" android:textSize="@dimen/textSize_16" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:ignore="UnusedAttribute" /> </android.support.constraint.ConstraintLayout> <android.support.constraint.ConstraintLayout android:id="@+id/cl_2" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintTop_toBottomOf="@id/cl_1"> <TextView android:id="@+id/tv_title_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="@dimen/dimen4" android:paddingBottom="@dimen/dimen4" android:text="2. å ¸åå·¥å°" android:textColor="@color/main_color_1" android:textSize="@dimen/textSize_16" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:ignore="UnusedAttribute" /> </android.support.constraint.ConstraintLayout> <android.support.constraint.ConstraintLayout android:id="@+id/cl_3" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintTop_toBottomOf="@id/cl_2"> <TextView android:id="@+id/tv_title_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="@dimen/dimen4" android:paddingBottom="@dimen/dimen4" android:text="3. éç¹åºå" android:textColor="@color/main_color_1" android:textSize="@dimen/textSize_16" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:ignore="UnusedAttribute" /> </android.support.constraint.ConstraintLayout> <android.support.constraint.ConstraintLayout android:id="@+id/cl_4" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintTop_toBottomOf="@id/cl_3"> <TextView android:id="@+id/tv_title_4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="@dimen/dimen4" android:paddingBottom="@dimen/dimen4" android:text="4. èåæ§æ³" android:textColor="@color/main_color_1" android:textSize="@dimen/textSize_16" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:ignore="UnusedAttribute" /> </android.support.constraint.ConstraintLayout> <android.support.constraint.ConstraintLayout android:id="@+id/cl_5" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintTop_toBottomOf="@id/cl_4"> <TextView android:id="@+id/tv_title_5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="@dimen/dimen4" android:paddingBottom="@dimen/dimen4" android:text="5. æ´æ¹æç" android:textColor="@color/main_color_1" android:textSize="@dimen/textSize_16" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:ignore="UnusedAttribute" /> </android.support.constraint.ConstraintLayout> <android.support.constraint.ConstraintLayout android:id="@+id/cl_6" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintTop_toBottomOf="@id/cl_5"> <TextView android:id="@+id/tv_title_6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="@dimen/dimen4" android:paddingBottom="@dimen/dimen4" android:text="6. æ½å·¥é¶æ®µ" android:textColor="@color/main_color_1" android:textSize="@dimen/textSize_16" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:ignore="UnusedAttribute" /> </android.support.constraint.ConstraintLayout> <android.support.constraint.ConstraintLayout android:id="@+id/cl_7" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintTop_toBottomOf="@id/cl_6"> <TextView android:id="@+id/tv_title_7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="@dimen/dimen4" android:paddingBottom="@dimen/dimen4" android:text="7. çæµæ°æ®" android:textColor="@color/main_color_1" android:textSize="@dimen/textSize_16" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:ignore="UnusedAttribute" /> </android.support.constraint.ConstraintLayout> <android.support.constraint.ConstraintLayout android:id="@+id/cl_8" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintTop_toBottomOf="@id/cl_7"> <TextView android:id="@+id/tv_title_8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="@dimen/dimen4" android:paddingBottom="@dimen/dimen4" android:text="8. åºæ¥å·¡æ¥" android:textColor="@color/main_color_1" android:textSize="@dimen/textSize_16" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:ignore="UnusedAttribute" /> </android.support.constraint.ConstraintLayout> </android.support.constraint.ConstraintLayout> </android.support.v7.widget.CardView> <android.support.design.widget.FloatingActionButton android:id="@+id/fab_close" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/cancel" android:src="@drawable/icon_close_white" app:elevation="8dp" app:fabSize="normal" app:layout_anchor="@id/cv_dialog_main" app:layout_anchorGravity="bottom|center" /> </android.support.design.widget.CoordinatorLayout> app/src/main/res/layout/dialog_scene_subinfo.xml
@@ -84,9 +84,23 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" app:fabSize="normal" android:layout_marginLeft="76dp" app:elevation="8dp" app:layout_anchor="@id/cv_dialog_main" app:layout_anchorGravity="bottom|center" app:layout_anchorGravity="bottom|left" android:contentDescription="@string/cancel" /> <android.support.design.widget.FloatingActionButton android:src="@drawable/icon_right_white" android:id="@+id/fab_submit" android:layout_width="wrap_content" android:layout_height="wrap_content" app:fabSize="normal" android:layout_marginRight="76dp" app:elevation="8dp" app:backgroundTint="@color/lightGreen" app:layout_anchor="@id/cv_dialog_main" app:layout_anchorGravity="bottom|right" /> </android.support.design.widget.CoordinatorLayout> app/src/main/res/layout/fragment_inspection_content.xml
@@ -12,7 +12,44 @@ android:layout_height="match_parent" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_marginBottom="20dp"></com.amap.api.maps.MapView> android:layout_marginBottom="20dp" /> <TextView android:id="@+id/scene_status" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" android:layout_marginBottom="230dp" android:background="@drawable/shape_yellow" android:drawableStart="@drawable/ic_group_black_24dp" android:drawableTint="@color/white" android:elevation="@dimen/dimen4" android:foreground="?android:attr/selectableItemBackground" android:gravity="center" android:padding="@dimen/dimen4" android:text="@string/scene_status" android:textColor="@color/white" tools:ignore="UnusedAttribute" /> <TextView android:id="@+id/scene_detail" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" android:layout_marginBottom="230dp" android:background="@drawable/shape_yellow" android:drawableStart="@drawable/ic_info_black_24dp" android:drawableTint="@color/white" android:elevation="@dimen/dimen4" android:foreground="?android:attr/selectableItemBackground" android:gravity="center" android:padding="@dimen/dimen4" android:text="ç¹ä½æ åµ" android:textColor="@color/white" tools:ignore="UnusedAttribute" /> <TextView android:id="@+id/user_account" @@ -20,16 +57,16 @@ android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" android:text="ç¨æ·è´¦å·" android:elevation="@dimen/dimen4" android:layout_marginBottom="188dp" android:padding="@dimen/dimen4" android:gravity="center" android:textColor="@color/white" android:background="@drawable/shape_green" android:foreground="?android:attr/selectableItemBackground" android:drawableStart="@drawable/ic_group_black_24dp" android:drawableTint="@color/white" android:elevation="@dimen/dimen4" android:foreground="?android:attr/selectableItemBackground" android:gravity="center" android:padding="@dimen/dimen4" android:text="ç¨æ·è´¦å·" android:textColor="@color/white" tools:ignore="UnusedAttribute" /> <LinearLayout @@ -184,203 +221,223 @@ </RelativeLayout> <LinearLayout android:paddingTop="12dp" android:paddingBottom="14dp" android:id="@+id/ll_patrol_task_detail" android:background="@drawable/shap_stroke_bottom" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_below="@+id/ln_patrol_subtask_detail" android:layout_alignParentStart="true"> android:layout_alignParentStart="true" android:background="@drawable/shap_stroke_bottom" android:orientation="vertical" android:paddingTop="12dp" android:paddingBottom="14dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginLeft="16dp"> <LinearLayout android:layout_width="match_parent" android:orientation="horizontal"> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> android:text="@string/task_name2" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/task_name2" /> <TextView android:id="@+id/tv_subtask_name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/task_type2" /> <TextView android:id="@+id/tv_subtask_type" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/task_plan_time" /> <TextView android:id="@+id/tv_subtask_plan_time" android:layout_width="wrap_content" android:singleLine="true" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/task_execute_time"/> <TextView android:id="@+id/tv_subtask_execute_time" android:layout_width="wrap_content" android:singleLine="true" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/task_executors"/> <TextView android:id="@+id/tv_subtask_executors" android:layout_width="wrap_content" android:singleLine="true" android:layout_height="wrap_content" /> </LinearLayout> <TextView android:id="@+id/tv_subtask_name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/task_type2" /> <TextView android:id="@+id/tv_subtask_type" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/task_plan_time" /> <TextView android:id="@+id/tv_subtask_plan_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/task_execute_time" /> <TextView android:id="@+id/tv_subtask_execute_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/task_executors" /> <TextView android:id="@+id/tv_subtask_executors" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_marginTop="16dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:orientation="horizontal"> <TextView android:layout_marginLeft="16dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/scense_name" /> android:layout_marginLeft="16dp" android:text="@string/scense_name" /> <TextView android:id="@+id/tv_scense_name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_marginLeft="16dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/scense_type" /> android:layout_marginLeft="16dp" android:text="@string/scense_type" /> <TextView android:id="@+id/tv_scense_type" android:layout_width="wrap_content" android:singleLine="true" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_marginLeft="16dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/scense_address" /> <TextView android:id="@+id/tv_scense_address" android:layout_width="wrap_content" android:singleLine="true" android:layout_height="wrap_content" /> android:singleLine="true" /> </LinearLayout> <LinearLayout android:layout_marginTop="4dp" android:layout_marginLeft="16dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:text="@string/scense_address" /> <TextView android:id="@+id/tv_scense_address" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:layout_marginTop="4dp" android:gravity="center_vertical" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="è系人 1ï¼"/> android:text="è系人 1ï¼" /> <TextView android:id="@+id/tv_scense_contact1" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=""/> android:layout_weight="1" android:text="" /> <TextView android:id="@+id/tv_call_contact1" android:layout_width="30dp" android:layout_height="30dp" android:layout_marginRight="16dp" android:textColor="@color/colorPrimary" android:background="@drawable/contactcompany" android:text=""/> android:text="" android:textColor="@color/colorPrimary" /> </LinearLayout> <LinearLayout android:visibility="gone" android:layout_marginLeft="16dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> android:layout_marginLeft="16dp" android:orientation="horizontal" android:visibility="gone"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="è系人 2ï¼"/> android:text="è系人 2ï¼" /> <TextView android:id="@+id/tv_scense_contact2" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=""/> android:layout_weight="1" android:text="" /> <TextView android:id="@+id/tv_call_contact2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="9dp" android:paddingRight="25dp" android:layout_height="wrap_content" android:textColor="@color/colorPrimary" android:text="æçµè¯"/> android:text="æçµè¯" android:textColor="@color/colorPrimary" /> </LinearLayout> </LinearLayout> </LinearLayout>