管灌系统巡查员智能手机App
1.优化地图相关代码,提高运行效率和可读性。
2.添加修改密码功能。
3.优化列表和详情页展示。
15个文件已修改
1个文件已添加
487 ■■■■■ 已修改文件
app/src/main/assets/js/map.js 113 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/pipirrapp/activity/ChangePSActivity.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/pipirrapp/net/Constants.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/pipirrapp/net/MyIntercepterApplication.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/pipirrapp/utils/MapUtils.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/bg_detail_wite.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/ic_choose_gray_edge.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_change_pass_word.xml 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_issue_detail.xml 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_order_detail.xml 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_order.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/item_issue.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/item_order.xml 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values/colors.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/assets/js/map.js
@@ -1,10 +1,18 @@
(function () {
    // 图片路径
    const locationIMGPath = 'img/location.png';
    const markerBalckPath = 'img/marker_black.svg';
    const markerRedPath = 'img/marker_red.svg';
    const markerBluePath = 'img/marker_blue.svg';
    const centerPin = 'img/push_pin.svg';
    // 建议将这些常量移到一个配置对象中统一管理
    const CONFIG = {
        IMAGES: {
            LOCATION: 'img/location.png',
            MARKER_BLACK: 'img/marker_black.svg',
            MARKER_RED: 'img/marker_red.svg',
            MARKER_BLUE: 'img/marker_blue.svg',
            CENTER_PIN: 'img/push_pin.svg'
        },
        MAP: {
            DEFAULT_ZOOM: 12,
            TIANDITU_KEY: 'd8beed89b43160a9a185e5aff431f85d'
        }
    };
    let map;
    let lastMarker = null;
    let lastClickedMarker = null;
@@ -116,12 +124,10 @@
        console.log("function》》》》》locationOverLay");
        map.centerAndZoom(new T.LngLat(lng, lag), map.getZoom());
        let icon = new T.Icon({
            iconUrl: locationIMGPath,
            iconSize: new T.Point(27, 27),
            iconAnchor: new T.Point(10, 25)
        });
        let marker = new T.Marker(new T.LngLat(lng, lag), { icon: icon });
        let marker = new T.Marker(
            new T.LngLat(lng, lag),
            { icon: createIcon(CONFIG.IMAGES.LOCATION, 27) }
        );
        map.addOverLay(marker);
    }
@@ -146,14 +152,7 @@
    function closeWaterIntakeDetail(data) {
        if (!isShowCenterPin) {
            if (lastClickedMarker !== null) {
                // 如果有点击取水口则将取水口恢复成黑色
                // 上次点击的标注改为黑色
                var defaulticon = new T.Icon({
                    iconUrl: markerBluePath,
                    iconSize: new T.Point(28, 28),
                    iconAnchor: new T.Point(14, 28)
                });
                lastClickedMarker.setIcon(defaulticon);
                lastClickedMarker.setIcon(createIcon(CONFIG.IMAGES.MARKER_BLUE));
            }
            if (isShowWaterIntakeDetail) {
                // 假如显示了取水口详情则隐藏取水口详情
@@ -182,23 +181,11 @@
    function chageMarkerIcon(data) {
        // 点击的标注改为红色
        var currentMarker = data.target;
        // 点击后图标
        var clickedIcon = new T.Icon({
            iconUrl: markerRedPath,
            iconSize: new T.Point(28, 28),
            iconAnchor: new T.Point(14, 28)
        });
        // 设置当前点击的 marker 为点击后图标
        currentMarker.setIcon(clickedIcon);
        // 判断点击的不是同一个坐标
        currentMarker.setIcon(createIcon(CONFIG.IMAGES.MARKER_RED));
        if (lastClickedMarker !== null) {
            if (!isEqualsLngLat(data.target.getLngLat(), lastClickedMarker.getLngLat())) {
                var defaulticon = new T.Icon({
                    iconUrl: markerBluePath,
                    iconSize: new T.Point(28, 28),
                    iconAnchor: new T.Point(14, 28)
                });
                lastClickedMarker.setIcon(defaulticon);
                lastClickedMarker.setIcon(createIcon(CONFIG.IMAGES.MARKER_BLUE));
            }
        }
        lastClickedMarker = data.target;
@@ -220,20 +207,11 @@
    function addMarker(id, lng, lat, name, isRed) {
        console.log("function》》》》》addMarker>>>id:" + id);
        var iconUrl;
        if (isRed) {
            iconUrl = markerRedPath;
        } else {
            iconUrl = markerBluePath;
        }
        var icon = new T.Icon({
            iconUrl: iconUrl,
            iconSize: new T.Point(28, 28),
            iconAnchor: new T.Point(14, 28)
        });
        const iconUrl = isRed ? CONFIG.IMAGES.MARKER_RED : CONFIG.IMAGES.MARKER_BLUE;
        let marker = new T.Marker(
            new T.LngLat(lng, lat) // 创建标注
            , { icon: icon });
            new T.LngLat(lng, lat),
            { icon: createIcon(iconUrl) }
        );
        //添加点击事件
        marker.addEventListener("click", (data) => {
            addMarkerListener(id, data)
@@ -257,18 +235,16 @@
        map.addOverLay(marker); // 将标注添加到地图中
        return "addMarker加载成功 id:" + id
    }
    //更新定位坐标
    //更新位坐标
    function updateLocation(log, lat) {
        let icon = new T.Icon({
            iconUrl: locationIMGPath,
            iconSize: new T.Point(20, 20),
            iconAnchor: new T.Point(10, 10)
        });
        if (locationMarker) {
            map.removeOverLay(locationMarker);
        }
        var newPoint = new T.LngLat(log, lat);
        locationMarker = new T.Marker(newPoint, { icon: icon });
        locationMarker = new T.Marker(
            newPoint,
            { icon: createIcon(CONFIG.IMAGES.LOCATION, 20) }
        );
        map.addOverLay(locationMarker);
        map.panTo(newPoint);
    }
@@ -346,9 +322,32 @@
    function mapMoveEnd(e) {
        var center = e.target.getCenter();
        console.log("lng:" + center.getLng() + "   lat:" + center.getLat())
        debounce(() => {
            const center = e.target.getCenter();
        window.Android.refreshCenter(center.getLng(), center.getLat());
        }, 300);
    }
    // 添加防抖函数
    function debounce(fn, delay) {
        let timer = null;
        return function() {
            if(timer) clearTimeout(timer);
            timer = setTimeout(() => {
                fn.apply(this, arguments);
            }, delay);
        }
    }
    // 创建marker图标的方法可以抽取出来复用
    function createIcon(iconUrl, size = 28) {
        return new T.Icon({
            iconUrl: iconUrl,
            iconSize: new T.Point(size, size),
            iconAnchor: new T.Point(size/2, size)
        });
    }
})();
app/src/main/java/com/dayu/pipirrapp/activity/ChangePSActivity.java
@@ -1,12 +1,23 @@
package com.dayu.pipirrapp.activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import androidx.annotation.Nullable;
import com.dayu.pipirrapp.MyApplication;
import com.dayu.pipirrapp.bean.net.IssueResult;
import com.dayu.pipirrapp.databinding.ActivityChangePassWordBinding;
import com.dayu.pipirrapp.net.ApiManager;
import com.dayu.pipirrapp.net.BaseResponse;
import com.dayu.pipirrapp.net.Constants;
import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
import com.dayu.pipirrapp.utils.ToastUtil;
import com.dayu.pipirrapp.view.TitleBar;
import java.util.HashMap;
import java.util.Map;
/**
 * author: zuo
@@ -22,6 +33,67 @@
        super.onCreate(savedInstanceState);
        binding = ActivityChangePassWordBinding.inflate(LayoutInflater.from(this));
        setContentView(binding.getRoot());
        new TitleBar(this).setTitleText("修改密码");
        new TitleBar(this).setTitleText("修改密码").setLeftIco().setLeftIcoListening(v -> ChangePSActivity.this.finish());
        initView();
    }
    private void initView() {
        binding.changePSBtn.setOnClickListener(v -> {
            String oldPassword = binding.oldPassword.getText().toString();
            String newPSOne = binding.newPsone.getText().toString();
            String newPStwo = binding.newPsTwo.getText().toString();
            if (!TextUtils.isEmpty(oldPassword) && !TextUtils.isEmpty(newPSOne) && !TextUtils.isEmpty(newPStwo)) {
                if (newPStwo.equals(newPSOne)) {
                    if (isPasswordComplex(newPSOne)) {
                        changePS(oldPassword, newPSOne);
                    } else {
                        ToastUtil.showToastShort(ChangePSActivity.this, "新密码长度应为6-12位,并且至少包含1个数字或字母!");
                    }
                } else {
                    ToastUtil.showToastShort(ChangePSActivity.this, "两次密码不一致!");
                }
            } else {
                ToastUtil.showToastShort(ChangePSActivity.this, "请输入完整信息!");
            }
        });
    }
    private void changePS(String oldPassword, String newPassword) {
        Map<String, Object> params = new HashMap<>();
        params.put("id", MyApplication.myApplication.userId);
        params.put("oldPassword", oldPassword);
        params.put("newPassword", newPassword);
        ApiManager.getInstance().requestPost(this, Constants.BASE_URL + "/base/user/changePassword", IssueResult.class, params, new SubscriberListener<BaseResponse<IssueResult>>() {
            @Override
            public void onNext(BaseResponse<IssueResult> t) {
                if (t.isSuccess()) {
                    ToastUtil.showToastLong(ChangePSActivity.this, "修改成功!");
                    ChangePSActivity.this.finish();
                } else {
                    ToastUtil.showToast(ChangePSActivity.this, t.getMsg());
                }
            }
            @Override
            public void onCloose() {
                super.onCloose();
            }
            @Override
            public void onError(Throwable e) {
                super.onError(e);
                ToastUtil.showToastLong(ChangePSActivity.this, "修改失败,请稍后再试");
            }
        });
    }
    // 检查密码复杂度的方法
    boolean isPasswordComplex(String password) {
        // 密码复杂度规则:长度在6到12位之间,至少包含一个数字和一个字母
        return password.length() >= 6 && password.length() <= 12 &&
                password.matches(".*\\d.*") && // 至少包含一个数字
                password.matches(".*[a-zA-Z].*"); // 至少包含一个字母
    }
}
app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java
@@ -1,7 +1,5 @@
package com.dayu.pipirrapp.activity;
import static androidx.core.content.ContextCompat.getSystemService;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
@@ -148,6 +146,7 @@
        binding.viewPager.setCurrentItem(1, false); // 默认显示地图页
        binding.viewPager.setOffscreenPageLimit(fragments.size());
        binding.viewPager.setUserInputEnabled(false);
    }
    @Override
@@ -199,7 +198,12 @@
     * 更新某个 Tab 的 UI 状态
     */
    private void updateTabUI(int position, int iconResId, int textColorResId) {
        binding.viewPager.setCurrentItem(position);
        if (position == 1) {
            binding.viewPager.setCurrentItem(position, true);
        } else {
            binding.viewPager.setCurrentItem(position, false);
        }
        switch (position) {
            case 0:
                binding.orderImg.setImageDrawable(ContextCompat.getDrawable(this, iconResId));
app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java
@@ -61,7 +61,8 @@
    int uplodFilerepeatSize = 3;
    ApiService apiService;
    private CompositeDisposable compositeDisposable = new CompositeDisposable(); // 管理订阅事件
    // 管理订阅事件
    private CompositeDisposable compositeDisposable = new CompositeDisposable();
    /**
     * 初始化通信框架
@@ -136,7 +137,7 @@
                    public BaseResponse<T> apply(Object o) {
                        if (o instanceof BaseResponse) {
                            BaseResponse tem = (BaseResponse) o;
                            if (tem.getCode().equals("0000")) {
                            if (tem.getCode().equals(Constants.TOKEN_INVALID)) {
                                //当code为0000是跳转到登录界面
                                tem.setMsg("登录失效请重新登录");
                                redirectToLogin();
@@ -189,7 +190,6 @@
            return null;
        }
    }
    /**
@@ -248,8 +248,10 @@
            Observable<ResponseBody> observable;
            observable = apiService.downloadTile(urlPath);
            observable
                    .subscribeOn(Schedulers.io())  // 网络请求在 I/O 线程中进行
                    .observeOn(Schedulers.io())    // 回调处理也在 I/O 线程
                    // 网络请求在 I/O 线程中进行
                    .subscribeOn(Schedulers.io())
                    // 回调处理也在 I/O 线程
                    .observeOn(Schedulers.io())
                    .subscribe(
                            responseBody -> {
@@ -341,23 +343,7 @@
    }
    /**
     * 判断当前code是否是未登录状态
     *
     * @param responseBody the response body in JSON format
     * @return true if login is required, false otherwise
     */
    private boolean isLoginRequired(String responseBody) {
        try {
            Gson gson = new Gson();
            Map<String, Object> responseMap = gson.fromJson(responseBody, Map.class);
            String code = (String) responseMap.get("code");
            return "0000".equals(code);  // Check if the code is not 0000
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    /**
     * 当code为“0000”时跳转到登录界面
app/src/main/java/com/dayu/pipirrapp/net/Constants.java
@@ -7,13 +7,14 @@
 */
public class Constants {
//    public static final String BASE_URL = "http://192.168.10.52:8088";
public static final String BASE_URL = "https://no253541tf71.vicp.fun";
//public static final String BASE_URL = "https://no253541tf71.vicp.fun";
public static final String BASE_URL = "http://fve2iz.natappfree.cc";
    /**
     * 代表请求成功
     */
    public static final String SUCCESS = "0001";
    //代表token过期的code值
    public static final int TOKEN_INVALID = -10001;
    public static final String TOKEN_INVALID = "0000";
    /**
     * 更新下载的文件名称
app/src/main/java/com/dayu/pipirrapp/net/MyIntercepterApplication.java
@@ -56,7 +56,7 @@
        try {
            Request.Builder builder = request.newBuilder();
            Map params = new HashMap();
            if (request.method().equals("GET")) {
            if ("GET".equals(request.method())) {
                builder.url(request.url().toString());
            } else {
@@ -100,7 +100,6 @@
        builder.message(message);
        return builder.build();
    }
}
app/src/main/java/com/dayu/pipirrapp/utils/MapUtils.java
@@ -9,7 +9,7 @@
 * gcj02 02年提出,火星坐标,经过加密算法。大多数非百度中国地图厂商基本都是使用的火星坐标:高德,腾讯,谷歌中国cn
 * bd09  09年提出,百度坐标,经过火星坐标再次加密,相当于对大地坐标经过了二次加密。百度自己使用
 * 一般的算法,没有直接bd09->wgs84或者wgs84->bd09,都需要借助wgs84->gcj02或者gcj02->wgs84算法推导。
 * <p>
 * 备注:坐标系转换
 */
public class MapUtils {
@@ -47,10 +47,12 @@
     * @return
     */
    public static boolean outOfChina(double lat, double lon) {
        if (lon < 72.004 || lon > 137.8347)
        if (lon < 72.004 || lon > 137.8347) {
            return true;
        if (lat < 0.8293 || lat > 55.8271)
        }
        if (lat < 0.8293 || lat > 55.8271) {
            return true;
        }
        return false;
    }
@@ -127,8 +129,16 @@
            if ((Math.abs(dLat) < threshold) && (Math.abs(dLon) < threshold)) {
                break;
            }
            if (dLat > 0) { pLat = wgsLat; } else { mLat = wgsLat;}
            if (dLon > 0) { pLon = wgsLon; } else { mLon = wgsLon;}
            if (dLat > 0) {
                pLat = wgsLat;
            } else {
                mLat = wgsLat;
            }
            if (dLon > 0) {
                pLon = wgsLon;
            } else {
                mLon = wgsLon;
            }
            if (++i > 1000) break;
        }
@@ -181,12 +191,15 @@
class Gps{
    double lat,lon;
    public Gps() {
    }
    public Gps(double lat,double lon){
        this.lat = lat;
        this.lon = lon;
    }
    @Override
    public String toString() {
        return "{"+lat+","+lon+"}";
app/src/main/res/drawable/bg_detail_wite.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FFFFFF" />
    <corners android:radius="10dp" />
    <stroke
        android:width="1dp"
        android:color="#ededed" />
</shape>
app/src/main/res/drawable/ic_choose_gray_edge.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#ffffff" />
    <corners android:radius="5dp" />
    <solid android:color="#FFFFFF" />
    <corners android:radius="7dp" />
    <stroke
        android:width="1dp"
        android:color="#ededed" />
app/src/main/res/layout/activity_change_pass_word.xml
@@ -11,10 +11,11 @@
        layout="@layout/top_title" />
    <EditText
        android:id="@+id/oldPassword"
        android:layout_width="match_parent"
        android:layout_height="@dimen/item_height"
        android:layout_marginTop="10dp"
        android:background="@color/white"
        android:hint="请输入旧密码"
        android:paddingLeft="20dp"
@@ -27,29 +28,33 @@
        android:gravity="bottom"
        android:paddingLeft="20dp"
        android:paddingBottom="3dp"
        android:textColor="@color/grey"
        android:text="密码为6-12位数字或字母"
        />
        android:textColor="@color/grey" />
    <EditText
        android:id="@+id/newPsone"
        android:layout_width="match_parent"
        android:layout_height="@dimen/item_height"
        android:background="@color/white"
        android:hint="请输入新密码"
        android:inputType="textPassword"
        android:paddingLeft="20dp"
        android:paddingRight="20dp" />
    <EditText
        android:id="@+id/newPsTwo"
        android:layout_width="match_parent"
        android:layout_height="@dimen/item_height"
        android:layout_marginTop="1dp"
        android:background="@color/white"
        android:hint="再次输入新密码"
        android:inputType="textPassword"
        android:paddingLeft="20dp"
        android:paddingRight="20dp" />
    <TextView
        android:id="@+id/changePSBtn"
        android:layout_width="match_parent"
        android:layout_height="@dimen/item_height"
        android:layout_marginLeft="40dp"
app/src/main/res/layout/activity_issue_detail.xml
@@ -40,8 +40,21 @@
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="15dp"
                    android:layout_marginRight="10dp"
                    android:layout_marginBottom="20dp"
                    android:background="@drawable/bg_detail_wite"
                android:orientation="vertical"
                android:padding="20dp">
                    android:paddingLeft="10dp"
                    android:paddingTop="15dp"
                    android:paddingRight="10dp"
                    android:paddingBottom="20dp">
                <RelativeLayout
                    android:layout_width="match_parent"
@@ -113,7 +126,7 @@
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="上报时间:"
                            android:textColor="@color/manage_item_text"
                                android:textColor="@color/item_name_text_color"
                            android:textSize="@dimen/order_detail_text_size" />
                        <TextView
@@ -142,7 +155,7 @@
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="上报内容:"
                        android:textColor="@color/manage_item_text"
                            android:textColor="@color/item_name_text_color"
                        android:textSize="@dimen/order_detail_text_size" />
                    <TextView
@@ -168,7 +181,7 @@
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="上报图片:"
                        android:textColor="@color/manage_item_text"
                            android:textColor="@color/item_name_text_color"
                        android:textSize="@dimen/order_detail_text_size" />
                    <androidx.recyclerview.widget.RecyclerView
@@ -181,38 +194,52 @@
                </LinearLayout>
                </LinearLayout>
                <LinearLayout
                    android:id="@+id/callBackLL"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="15dp"
                    android:layout_marginRight="10dp"
                    android:layout_marginBottom="20dp"
                    android:background="@drawable/bg_detail_wite"
                    android:orientation="vertical"
                    android:layout_height="wrap_content">
                    android:paddingLeft="10dp"
                    android:paddingTop="15dp"
                    android:paddingRight="10dp"
                    android:paddingBottom="20dp">
                <LinearLayout
                    android:id="@+id/orderDealLL"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:orientation="vertical"
                    android:visibility="visible">
                    <View
                        android:layout_width="match_parent"
                        android:layout_height="2dp"
                        android:background="@color/base_blue" />
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="5dp"
                        android:gravity="center"
                        android:text="回复信息"
                        android:textColor="@color/base_blue"
                        android:textSize="@dimen/order_detail_text_size" />
                            android:textSize="@dimen/order_detail_text_size"
                            android:textStyle="bold" />
                        <View
                            android:layout_width="match_parent"
                            android:layout_height="2dp"
                            android:layout_marginTop="5dp"
                            android:background="@color/base_blue" />
                </LinearLayout>
                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="10dp"
                        android:layout_marginTop="15dp"
                        android:orientation="horizontal">
@@ -221,7 +248,7 @@
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="回复时间:"
                            android:textColor="@color/manage_item_text"
                            android:textColor="@color/item_name_text_color"
                            android:textSize="@dimen/order_detail_text_size" />
                        <TextView
@@ -239,6 +266,7 @@
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="10dp"
                        android:layout_marginBottom="10dp"
                        android:orientation="horizontal">
@@ -247,7 +275,7 @@
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="回复内容:"
                            android:textColor="@color/manage_item_text"
                            android:textColor="@color/item_name_text_color"
                            android:textSize="@dimen/order_detail_text_size" />
                        <TextView
app/src/main/res/layout/activity_order_detail.xml
@@ -20,6 +20,7 @@
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/item_bg_color"
        android:orientation="vertical">
        <include
@@ -40,8 +41,21 @@
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="15dp"
                    android:layout_marginRight="10dp"
                    android:layout_marginBottom="20dp"
                    android:background="@drawable/bg_detail_wite"
                android:orientation="vertical"
                android:padding="20dp">
                    android:paddingLeft="10dp"
                    android:paddingTop="15dp"
                    android:paddingRight="10dp"
                    android:paddingBottom="20dp">
                <RelativeLayout
@@ -55,6 +69,7 @@
                        android:layout_width="20dp"
                        android:layout_height="20dp"
                        android:layout_centerVertical="true"
                            android:layout_marginLeft="10dp"
                        android:layout_marginRight="15dp"
                        android:src="@mipmap/icon_project" />
@@ -101,10 +116,11 @@
                    <TextView
                        android:id="@+id/jinduTag"
                        android:layout_width="wrap_content"
                            android:layout_width="120dp"
                        android:layout_height="wrap_content"
                            android:gravity="right"
                        android:text="工单ID:"
                        android:textColor="@color/manage_item_text"
                            android:textColor="@color/item_name_text_color"
                        android:textSize="@dimen/order_detail_text_size" />
                    <TextView
@@ -127,10 +143,11 @@
                    <TextView
                        android:layout_width="wrap_content"
                            android:layout_width="120dp"
                        android:layout_height="wrap_content"
                            android:gravity="right"
                        android:text="派单人姓名:"
                        android:textColor="@color/manage_item_text"
                            android:textColor="@color/item_name_text_color"
                        android:textSize="@dimen/order_detail_text_size" />
                    <TextView
@@ -153,10 +170,11 @@
                    <TextView
                        android:layout_width="wrap_content"
                            android:layout_width="120dp"
                        android:layout_height="wrap_content"
                            android:gravity="right"
                        android:text="派单时间:"
                        android:textColor="@color/manage_item_text"
                            android:textColor="@color/item_name_text_color"
                        android:textSize="@dimen/order_detail_text_size" />
                    <TextView
@@ -179,11 +197,11 @@
                    <TextView
                        android:layout_width="wrap_content"
                            android:layout_width="120dp"
                        android:layout_height="wrap_content"
                        android:gravity="center_vertical"
                            android:gravity="right"
                        android:text="任务类型:"
                        android:textColor="@color/manage_item_text"
                            android:textColor="@color/item_name_text_color"
                        android:textSize="@dimen/order_detail_text_size" />
                    <TextView
@@ -206,10 +224,11 @@
                    <TextView
                        android:id="@+id/daiShenPiTag"
                        android:layout_width="wrap_content"
                            android:layout_width="120dp"
                        android:layout_height="wrap_content"
                            android:gravity="right"
                        android:text="要求完成时间:"
                        android:textColor="@color/manage_item_text"
                            android:textColor="@color/item_name_text_color"
                        android:textSize="@dimen/order_detail_text_size" />
                    <TextView
@@ -233,10 +252,11 @@
                    <TextView
                        android:layout_width="wrap_content"
                            android:layout_width="120dp"
                        android:layout_height="wrap_content"
                            android:gravity="right"
                        android:text="完成标准:"
                        android:textColor="@color/manage_item_text"
                            android:textColor="@color/item_name_text_color"
                        android:textSize="@dimen/order_detail_text_size" />
                    <TextView
@@ -261,10 +281,11 @@
                    <TextView
                        android:layout_width="wrap_content"
                            android:layout_width="120dp"
                        android:layout_height="wrap_content"
                            android:gravity="right"
                        android:text="任务内容:"
                        android:textColor="@color/manage_item_text"
                            android:textColor="@color/item_name_text_color"
                        android:textSize="@dimen/order_detail_text_size" />
                    <TextView
@@ -278,28 +299,38 @@
                </LinearLayout>
                </LinearLayout>
                <LinearLayout
                    android:id="@+id/orderDealLL"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:layout_marginBottom="20dp"
                    android:background="@drawable/bg_detail_wite"
                    android:orientation="vertical"
                    android:visibility="gone">
                    android:paddingLeft="10dp"
                    android:paddingTop="15dp"
                    android:paddingRight="10dp"
                    android:paddingBottom="20dp">
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="5dp"
                        android:gravity="center"
                        android:text="处理结果"
                        android:textColor="@color/base_blue"
                        android:textSize="@dimen/order_detail_text_size"
                        android:textStyle="bold" />
                    <View
                        android:layout_width="match_parent"
                        android:layout_height="2dp"
                        android:background="@color/base_blue" />
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="5dp"
                        android:gravity="center"
                        android:text="处理结果"
                        android:textColor="@color/base_blue"
                        android:textSize="@dimen/order_detail_text_size" />
                    <LinearLayout
@@ -315,7 +346,7 @@
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="反馈详情:"
                            android:textColor="@color/manage_item_text"
                            android:textColor="@color/item_name_text_color"
                            android:textSize="@dimen/order_detail_text_size" />
                        <TextView
@@ -341,7 +372,7 @@
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="反馈时间:"
                            android:textColor="@color/manage_item_text"
                            android:textColor="@color/item_name_text_color"
                            android:textSize="@dimen/order_detail_text_size" />
                        <TextView
@@ -365,7 +396,7 @@
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="反馈图片:"
                            android:textColor="@color/manage_item_text"
                            android:textColor="@color/item_name_text_color"
                            android:textSize="@dimen/order_detail_text_size" />
                        <androidx.recyclerview.widget.RecyclerView
app/src/main/res/layout/fragment_order.xml
@@ -214,7 +214,7 @@
                android:id="@+id/recyclerView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#fff"
                android:background="@color/item_bg_color"
                android:overScrollMode="never"
                android:padding="10dp" />
app/src/main/res/layout/item_issue.xml
@@ -80,7 +80,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="上报内容:"
                android:textColor="@color/manage_item_text"
                android:textColor="@color/item_name_text_color"
                android:textSize="@dimen/manage_item_text_size" />
            <TextView
@@ -108,7 +108,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="上报时间:"
                android:textColor="@color/manage_item_text"
                android:textColor="@color/item_name_text_color"
                android:textSize="@dimen/manage_item_text_size" />
            <TextView
@@ -137,7 +137,7 @@
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:text="回复内容:"
                android:textColor="@color/manage_item_text"
                android:textColor="@color/item_name_text_color"
                android:textSize="@dimen/manage_item_text_size" />
            <TextView
@@ -167,7 +167,7 @@
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:text="回复时间:"
                android:textColor="@color/manage_item_text"
                android:textColor="@color/item_name_text_color"
                android:textSize="@dimen/manage_item_text_size" />
            <TextView
app/src/main/res/layout/item_order.xml
@@ -32,6 +32,7 @@
                android:layout_height="20dp"
                android:layout_centerVertical="true"
                android:layout_marginRight="10dp"
                android:layout_marginLeft="10dp"
                android:src="@mipmap/icon_project" />
            <TextView
@@ -58,12 +59,12 @@
                android:layout_centerVertical="true"
                android:background="@drawable/ic_edt_gray_bg"
                android:gravity="center"
                android:textColor="@color/black"
                android:paddingLeft="10dp"
                android:paddingTop="5dp"
                android:paddingRight="10dp"
                android:paddingBottom="5dp"
                android:text="@{data.processingState}"
                android:textColor="@color/black"
                android:textSize="@dimen/manage_item_text_state_size" />
@@ -76,13 +77,14 @@
            android:orientation="horizontal">
                <TextView
                    android:id="@+id/jinduTag"
                    android:layout_width="wrap_content"
                android:layout_width="100dp"
                    android:layout_height="wrap_content"
                android:gravity="right"
                    android:text="工单ID:"
                    android:textColor="@color/manage_item_text"
                android:textColor="@color/item_name_text_color"
                    android:textSize="@dimen/manage_item_text_size" />
                <TextView
@@ -94,7 +96,6 @@
                    android:textSize="@dimen/manage_item_text_size" />
        </LinearLayout>
        <LinearLayout
@@ -104,13 +105,13 @@
            android:orientation="horizontal">
                <TextView
                    android:id="@+id/daiShenPiTag"
                    android:layout_width="wrap_content"
                android:layout_width="100dp"
                    android:layout_height="wrap_content"
                android:gravity="right"
                    android:text="要求完成时间:"
                    android:textColor="@color/manage_item_text"
                android:textColor="@color/item_name_text_color"
                    android:textSize="@dimen/manage_item_text_size" />
                <TextView
@@ -123,8 +124,6 @@
            </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
@@ -133,13 +132,13 @@
            android:orientation="horizontal">
                <TextView
                    android:layout_width="wrap_content"
                android:layout_width="100dp"
                    android:layout_height="wrap_content"
                android:gravity="right"
                    android:text="完成标准:"
                    android:textColor="@color/manage_item_text"
                android:textColor="@color/item_name_text_color"
                    android:textSize="@dimen/manage_item_text_size" />
                <TextView
@@ -154,9 +153,6 @@
            </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
@@ -166,10 +162,11 @@
                <TextView
                    android:layout_width="wrap_content"
                android:layout_width="100dp"
                    android:layout_height="wrap_content"
                android:gravity="right"
                    android:text="任务内容:"
                    android:textColor="@color/manage_item_text"
                android:textColor="@color/item_name_text_color"
                    android:textSize="@dimen/manage_item_text_size" />
                <TextView
@@ -183,23 +180,22 @@
                    android:textSize="@dimen/manage_item_text_size" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="5dp"
            android:orientation="horizontal">
                <TextView
                    android:layout_width="wrap_content"
                android:layout_width="100dp"
                    android:layout_height="wrap_content"
                    android:gravity="center_vertical"
                android:gravity="right"
                    android:text="派单时间:"
                    android:textColor="@color/manage_item_text"
                android:textColor="@color/item_name_text_color"
                    android:textSize="@dimen/manage_item_text_size" />
                <TextView
@@ -209,9 +205,6 @@
                    android:text="@{data.dispatchTime}"
                    android:textColor="@color/manage_item_text"
                    android:textSize="@dimen/manage_item_text_size" />
        </LinearLayout>
app/src/main/res/values/colors.xml
@@ -28,4 +28,6 @@
    <color name="inspect_text_color_pause">#7fff00</color>
    <color name="inspect_rl_bg_color">#ff6347</color>
    <color name="delete_color">#ff0000</color>
    <color name="item_bg_color">#F9F9F9</color>
    <color name="item_name_text_color">#828282</color>
</resources>