main
lynn 1 year ago
parent 90f0f352b3
commit 657fff2c9b

@ -37,35 +37,20 @@
uni.setStorageSync('token', token)
// 登录成功后获取用户信息
uni.request({
url: API.GET_USER_INFO,
method: 'POST',
data: { token },
success: (res) => {
console.log('获取用户信息成功:', res.data)
// 可存储用户信息到本地或全局
// uni.request({
// url: API.GET_USER_INFO,
// method: 'POST',
// data: { token },
// success: (res) => {
// console.log('获取用户信息成功:', res.data)
// // 可存储用户信息到本地或全局
// 获取船舶属性枚举
uni.request({
url: API.SHIP_PROPERTY_ENUM,
method: 'POST',
data: { token },
success: (res) => {
console.log('获取船舶属性枚举成功:', res.data)
// 存储船舶属性枚举到本地
if (res.data.errcode === 0) {
uni.setStorageSync('shipPropertyEnum', res.data.data)
}
},
fail: (err) => {
console.error('获取船舶属性枚举失败:', err)
}
})
},
fail: (err) => {
console.error('获取用户信息失败:', err)
}
})
// },
// fail: (err) => {
// console.error('获取用户信息失败:', err)
// }
// })
} else {
console.error('登录失败:', result.errmsg)
// 可选:uni.showToast({ title: result.errmsg, icon: 'none' })

@ -9,5 +9,5 @@ export const API = {
SHIP_CREATE: `${BASE_URL}/api/customer/ship/create`,
SHIP_INDEX: `${BASE_URL}/api/customer/ship/index`,
SHIP_DETAIL: `${BASE_URL}/api/customer/ship/get-one`,
SHIP_PROPERTY_ENUM: `${BASE_URL}/api/customer/ship/property-enum`,
SHIP_PROPERTY_ENUM: `${BASE_URL}/api/customer/ship/get-property-enum`,
}

@ -69,8 +69,13 @@
<view class="form-row">
<text class="form-label required">参考载重吨位</text>
<radio-group class="form-radio-group" v-model="form.tonLevel" @change="onTonLevelChange">
<radio class="form-radio" value="B" :checked="form.tonLevel === 'B'">B级</radio>
<radio class="form-radio" value="C" :checked="form.tonLevel === 'C'">C级</radio>
<radio
v-for="(value, label) in tonnageClassEnum"
:key="value"
class="form-radio"
:value="value"
:checked="form.tonLevel === value"
>{{ label }}</radio>
</radio-group>
</view>
<view class="form-tip">请选择船舶的参考载重吨位等级</view>
@ -78,9 +83,13 @@
<view class="form-row">
<text class="form-label required">船型</text>
<radio-group class="form-radio-group" v-model="form.shipType" @change="onShipTypeChange">
<radio class="form-radio" value="1" :checked="form.shipType === '1'">平</radio>
<radio class="form-radio" value="2" :checked="form.shipType === '2'">尖</radio>
<radio class="form-radio" value="3" :checked="form.shipType === '3'">槽罐船</radio>
<radio
v-for="(value, label) in shipTypeEnum"
:key="value"
class="form-radio"
:value="value.toString()"
:checked="form.shipType === value.toString()"
>{{ label }}</radio>
</radio-group>
</view>
<view class="form-tip">请选择船舶的类型</view>
@ -222,6 +231,8 @@ export default {
hasDrawn: false,
hasSigned: false,
isEdit: false,
shipTypeEnum: {}, // 船型枚举
tonnageClassEnum: {}, // 载重吨位枚举
form: {
owner: 'sdf',
idCard: '510521198904074359',
@ -243,36 +254,85 @@ export default {
}
},
onLoad(options) {
if (options.edit === '1' && options.ship) {
try {
const ship = JSON.parse(decodeURIComponent(options.ship));
this.isEdit = true;
// 填充表单
this.form.owner = ship.owner_name || '';
this.form.idCard = ship.id_card || '';
this.form.phone = ship.phone || '';
this.form.shipNo = ship.ship_number || '';
this.form.ton = ship.total_tonnage || '';
this.form.length = ship.total_length || '';
this.form.width = ship.total_width || '';
this.form.depth = ship.molded_depth || '';
this.form.tonLevel = ship.tonnage_class || '';
this.form.shipType = ship.ship_type || '';
this.form.page1FileId = ship.picture1 || '';
this.form.page2FileId = ship.picture2 || '';
this.form.page3FileId = ship.picture3 || '';
// 图片预览
this.page1Img = this.getFileUrl(ship.picture1);
this.page2Img = this.getFileUrl(ship.picture2);
this.page3Img = this.getFileUrl(ship.picture3);
this.originalPage1Img = this.page1Img;
this.originalPage2Img = this.page2Img;
this.originalPage3Img = this.page3Img;
// 签名图片(不自动填充,需用户重新签名)
} catch (e) {}
}
// 获取船舶属性枚举
this.fetchShipPropertyEnum().then(success => {
if (!success) {
// 如果获取失败,返回上一页
setTimeout(() => {
uni.navigateBack();
}, 1500);
return;
}
if (options.edit === '1' && options.ship) {
try {
const ship = JSON.parse(decodeURIComponent(options.ship));
this.isEdit = true;
// 填充表单
this.form.owner = ship.owner_name || '';
this.form.idCard = ship.id_card || '';
this.form.phone = ship.phone || '';
this.form.shipNo = ship.ship_number || '';
this.form.ton = ship.total_tonnage || '';
this.form.length = ship.total_length || '';
this.form.width = ship.total_width || '';
this.form.depth = ship.molded_depth || '';
this.form.tonLevel = ship.tonnage_class || '';
this.form.shipType = ship.ship_type || '';
this.form.page1FileId = ship.picture1 || '';
this.form.page2FileId = ship.picture2 || '';
this.form.page3FileId = ship.picture3 || '';
// 图片预览
this.page1Img = this.getFileUrl(ship.picture1);
this.page2Img = this.getFileUrl(ship.picture2);
this.page3Img = this.getFileUrl(ship.picture3);
this.originalPage1Img = this.page1Img;
this.originalPage2Img = this.page2Img;
this.originalPage3Img = this.page3Img;
// 签名图片(不自动填充,需用户重新签名)
} catch (e) {}
}
});
},
methods: {
async fetchShipPropertyEnum() {
const token = uni.getStorageSync('token');
if (!token) {
uni.showToast({ title: '请先登录', icon: 'none' });
return false;
}
uni.showLoading({ title: '加载中...' });
try {
const res = await new Promise((resolve, reject) => {
uni.request({
url: API.SHIP_PROPERTY_ENUM,
method: 'GET',
data: { token },
success: resolve,
fail: reject
});
});
uni.hideLoading();
if (res.data && res.data.errcode === 0) {
const enumData = res.data.data;
this.shipTypeEnum = enumData.ship_type;
this.tonnageClassEnum = enumData.tonnage_class;
// 设置默认值
if (!this.isEdit) {
this.form.shipType = Object.values(this.shipTypeEnum)[0].toString();
this.form.tonLevel = Object.values(this.tonnageClassEnum)[0];
}
return true;
} else {
uni.showToast({ title: res.data.errmsg || '获取枚举失败', icon: 'none' });
return false;
}
} catch (error) {
uni.hideLoading();
uni.showToast({ title: error.message || '网络错误', icon: 'none' });
return false;
}
},
getFileUrl(fileId) {
if (!fileId) return '';
return `${API.BASE_URL}/api/customer/upload-file/preview?id=${fileId}`;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,2 +1,2 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["common/main"],{0:function(e,t,o){"use strict";(function(e,t){var n=o(4),r=n(o(11));o(26);var u=n(o(27)),c=n(o(25)),a=n(o(34)),l=n(o(36)),f=o(65),i=n(o(207)),s=n(o(208)),d=n(o(66));function p(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function O(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?p(Object(o),!0).forEach((function(t){(0,r.default)(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):p(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}e.__webpack_require_UNI_MP_PLUGIN__=o,c.default.use(l.default);var v=o(209);c.default.mixin(v),c.default.config.productionTip=!1,u.default.mpType="app";var b=new c.default(O({store:a.default},u.default));c.default.prototype.base=f.base,c.default.use(i.default,b),c.default.use(s.default,b),c.default.prototype.$moment=d.default,t(b).$mount()}).call(this,o(1)["default"],o(2)["createApp"])},27:function(e,t,o){"use strict";o.r(t);var n=o(28);for(var r in n)["default"].indexOf(r)<0&&function(e){o.d(t,e,(function(){return n[e]}))}(r);o(31);var u,c,a,l,f=o(33),i=Object(f["default"])(n["default"],u,c,!1,null,null,null,!1,a,l);i.options.__file="App.vue",t["default"]=i.exports},28:function(e,t,o){"use strict";o.r(t);var n=o(29),r=o.n(n);for(var u in n)["default"].indexOf(u)<0&&function(e){o.d(t,e,(function(){return n[e]}))}(u);t["default"]=r.a},29:function(e,t,o){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=o(30),r={onLaunch:function(){console.log("App Launch"),this.wxLogin()},onShow:function(){console.log("App Show")},onHide:function(){console.log("App Hide")},methods:{wxLogin:function(){e.login({provider:"weixin",success:function(t){var o=t.code;console.log("微信登录成功,code:",o),e.request({url:n.API.LOGIN,method:"POST",data:{code:o},success:function(t){var o=t.data;if(0===o.errcode){var r=o.data.access_token;console.log("获取 token 成功:",r),e.setStorageSync("token",r),e.request({url:n.API.GET_USER_INFO,method:"POST",data:{token:r},success:function(t){console.log("获取用户信息成功:",t.data),e.request({url:n.API.SHIP_PROPERTY_ENUM,method:"POST",data:{token:r},success:function(t){console.log("获取船舶属性枚举成功:",t.data),0===t.data.errcode&&e.setStorageSync("shipPropertyEnum",t.data.data)},fail:function(e){console.error("获取船舶属性枚举失败:",e)}})},fail:function(e){console.error("获取用户信息失败:",e)}})}else console.error("登录失败:",o.errmsg)},fail:function(e){console.error("获取 token 失败:",e)}})},fail:function(e){console.error("微信登录失败:",e)}})}}};t.default=r}).call(this,o(2)["default"])},31:function(e,t,o){"use strict";o.r(t);var n=o(32),r=o.n(n);for(var u in n)["default"].indexOf(u)<0&&function(e){o.d(t,e,(function(){return n[e]}))}(u);t["default"]=r.a},32:function(e,t,o){}},[[0,"common/runtime","common/vendor"]]]);
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["common/main"],{0:function(e,t,n){"use strict";(function(e,t){var o=n(4),r=o(n(11));n(26);var u=o(n(27)),c=o(n(25)),a=o(n(34)),f=o(n(36)),i=n(65),l=o(n(207)),s=o(n(208)),d=o(n(66));function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,r.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}e.__webpack_require_UNI_MP_PLUGIN__=n,c.default.use(f.default);var O=n(209);c.default.mixin(O),c.default.config.productionTip=!1,u.default.mpType="app";var b=new c.default(v({store:a.default},u.default));c.default.prototype.base=i.base,c.default.use(l.default,b),c.default.use(s.default,b),c.default.prototype.$moment=d.default,t(b).$mount()}).call(this,n(1)["default"],n(2)["createApp"])},27:function(e,t,n){"use strict";n.r(t);var o=n(28);for(var r in o)["default"].indexOf(r)<0&&function(e){n.d(t,e,(function(){return o[e]}))}(r);n(31);var u,c,a,f,i=n(33),l=Object(i["default"])(o["default"],u,c,!1,null,null,null,!1,a,f);l.options.__file="App.vue",t["default"]=l.exports},28:function(e,t,n){"use strict";n.r(t);var o=n(29),r=n.n(o);for(var u in o)["default"].indexOf(u)<0&&function(e){n.d(t,e,(function(){return o[e]}))}(u);t["default"]=r.a},29:function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=n(30),r={onLaunch:function(){console.log("App Launch"),this.wxLogin()},onShow:function(){console.log("App Show")},onHide:function(){console.log("App Hide")},methods:{wxLogin:function(){e.login({provider:"weixin",success:function(t){var n=t.code;console.log("微信登录成功,code:",n),e.request({url:o.API.LOGIN,method:"POST",data:{code:n},success:function(t){var n=t.data;if(0===n.errcode){var o=n.data.access_token;console.log("获取 token 成功:",o),e.setStorageSync("token",o)}else console.error("登录失败:",n.errmsg)},fail:function(e){console.error("获取 token 失败:",e)}})},fail:function(e){console.error("微信登录失败:",e)}})}}};t.default=r}).call(this,n(2)["default"])},31:function(e,t,n){"use strict";n.r(t);var o=n(32),r=n.n(o);for(var u in o)["default"].indexOf(u)<0&&function(e){n.d(t,e,(function(){return o[e]}))}(u);t["default"]=r.a},32:function(e,t,n){}},[[0,"common/runtime","common/vendor"]]]);
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/main.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save