以下是根据您提供的内容重构后的代码:
一、获取当前页面参数的js代码:
```javascript
onLoad: async function (options) {
const pages = getCurrentPages(); //获取加载的页面
const currentPage = pages[pages.length - 1]; //获取当前页面的对象
const options = currentPage.options; //如果要获取url中所带的参数可以查看options
this.setData({
contactid: options.contactid //这里的options.表示获取参数,contactid表示参数名称
});
},
```
在小程序开发工具的右下角可以看到当前页面参数。
二、单独input文本框参数的获取的js和wxml代码:
```javascript
comments(e) {
console.log("参数", e.detail.value); //这里面的值就是获取到文本框中的值
}
```
```html
```
输出结果:在文本框输入:这是一个测试,回车,得到的结果如下。
```html
```
以下是针对给定内容的重构建议:
## 重构前内容
假设我们有以下样式表(wxss):
```css
/* 全局 */
body {
font-family: Arial, sans-serif;
margin: 0;
}
/* 导航栏 */
nav {
background-color: #333;
}
nav ul li {
display: inline-block;
margin-right: 10px;
}
nav ul li a {
color: white;
text-decoration: none;
}
/* 主要容器 */
.container {
max-width: 960px;
margin: 0 auto;
}
```
## 重构建议
根据提供的文本内容和样式要求,可以对上述样式表进行如下重构:
```css
/* 全局 */
body {
font-family: var(--font-primary); /* 定义字体 */
}
.container {
width: var(--container-width); /* 定义主要容器宽度 */
}
/* 导航栏 */
nav {
background-color: #333;
padding: 20px; /* 添加内边距 */
}
nav ul li {
margin-right: 20px; /* 将右侧边距改为默认值 */
}
nav ul li a {
color: white; /* 将链接颜色设置为白色 */
}
/* 其他样式保持不变 */
```
pop1 {
background-color: white;
width: 100%;
padding-top: 2%;
margin-bottom: 2%;
}
/* 点击事件执行样式变化 */
.pop1:active {
background-color: rgb(212, 211, 211);
}
.pop1_title {
margin-left: 5%;
}
.pop1_input {
margin-left: 7%;
width: 85%;
color: #808080;
}
.customered {
width: 100%;
padding-bottom: 5%;
display: flex;
align-items: center;
justify-content: center;
}
.bright789_view_hide {
display: none;
}
.bright789_view_show {
display: block;
}
.customered1 {
border: 1px solid #EDEDEE;
width: 85%;
}
.customered_title {
color: #808080;
margin: 3% 0 0;
}
.customered_content{
word-break: break-all;
padding-left:2%;
margin:0;
}
.pop2{
background-color: white;
width:100%;
padding-top:2%;
height:8%;
margin-bottom:2%;
}
.pop2_title{
margin-left:5%;
}
.pop2_input{
margin-left:7%;
}
.pop3{
background-color: white;
width:100%;
padding-top:2%;
height:8%;
margin-bottom:2%;
}
.pop3_title{
margin-left:7%;
}
.pop3_input{
margin-left:7%;
}
.pop4{
background-color: white;
width:100%;
height:20%;
margin-bottom:2%;
}
.pop4_title{
margin-left:7%;padding-top:2%;padding-bottom:2%;}
.pop4_checkbox{margin-left:7%;color:#808080;width:90%;} /*点击事件执行样式变化*/ /*激活时改变背景颜色*/ /*未选中时的样式*/ /*选中时的样式*/ /*点击事件执行样式变化*/ /*未激活时改变背景颜色*/ /*活动时的样式*/ /*输入框的样式*/ /*按钮的样式*/ /*底部弹出框的样式 */
JavaScript(简称JS)是一种轻量级、解释型或即时编译型的编程语言,常用于Web网页开发。它是一种基于原型、多范式的动态脚本语言,主要特性包括:
1. 动态性质:JavaScript可以在运行时改变自身代码的行为。
2. 面向对象:JavaScript支持面向对象的编程方式,可以使用类和对象来组织和管理代码。
3. 事件驱动:JavaScript可以响应用户的操作和交互事件,如点击、滚动等。
4. 浏览器兼容性:JavaScript可以在不同的浏览器和操作系统上运行,但需要注意不同版本之间的差异。
5. 大量的库和框架:JavaScript拥有丰富的库和框架资源,如jQuery、React、Angular等,可以帮助开发者更快速高效地进行Web应用开发。
6. 网络通信能力:JavaScript可以通过XMLHttpRequest和Fetch API与其他Web服务器进行数据交换和通信。
7. 跨平台开发:通过使用Node.js,JavaScript也可以用于后端服务器开发,实现跨平台运行。
8. 异步处理:JavaScript支持异步编程方式,可以避免阻塞主线程,提高应用程序的性能和响应速度。
9. 安全性:由于JavaScript是一种客户端脚本语言,因此需要特别注意安全性问题,如防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等。
10. 可扩展性和可维护性:通过模块化的设计和合理的命名规范,JavaScript具有良好的可扩展性和可维护性。
总之,JavaScript是一门功能强大且广泛应用的编程语言,对于Web前端开发来说具有不可替代的重要性。
const app = getApp()Page({
data: {
index6: 0, //选择的下拉列
seleNull6: null, //设置的变量
contactremarks: '''', //客户选择页面传来的值
valid: '', //客户选择页面传来的值
showView: false, //是否显示新增联系人页面
selectDatas6: ['', '是', '否'], //从前端获取下拉列表的值
customerinfo: '', //客户信息
checkedList: [], //职位复选框选中的值
},
handleItemChange(e) {
const checkedList = e.detail.value;
this.setData({
checkedList,
})
},
bindPickerChange6(e) {
console.log('picker发送选择改变,携带下标为', e.detail.value);
console.log('picker发送选择改变,携带值为' + this.data.selectDatas6[e.detail.value]);
this.setData({
seleNull6: '0',
index6: e.detail.value,
})
},
customerselect() {
wx.navigateTo({
url: '/pages/customerselect/customerselect',
})
},
addcontent_submit(e) {
e.preventDefault();
const customer_id = this.data.valid.customer_id; //客户ID
const customer_code = this.data.valid.customer_code; //客户编码
const contactname = e.detail.value.contactname; //联系人姓名
const contactphone = e.detail.value.contactphone; //联系人电话
const checkedList = this.data.checkedList; //职位复选框选中的值
const policymaker = this.data.selectDatas6[e.detail.value.policymaker]; //决策人
const contactemail = e.detail.value.contactemail; //邮箱
const contactremarks = e.detail.value.contactremarks; //备注
wx.showToast({
title: '请选择客户',
})
wx.showModal({
title: '提示',
content: '请先选择客户再进行添加操作!',
})
wx.hideToast();
wx.showModal({
title: '提示',
content: '请输入正确的客户编码!',
})
wx.hideToast();
wx.showModal({
title: '提示',
content: '请输入正确的联系人姓名!',
})
wx.hideToast();
wx.showModal({
title: '提示',
content: '请输入正确的联系人电话!',
})
wx.hideToast();
wx.showModal({
title: '提示',
content: '请输入正确的职位!',
})
wx.hideToast();
wx.showModal({
title: '提示',
content: '请输入正确的邮箱!',
})
wx.hideToast();
wx.showModal({
title: '提示',
content: '请输入正确的备注!',
})
wx.hideToast();
wx.showModal({
title: '提示',
content: '请选择有效的客户!',
})
wx.hideToast();
wx.showModal({
title: '提示',
content: '请选择有效的职位!',
})
wx.hideToast();
wx.showModal({
title: '提示',
content: '请选择有效的邮箱!',
})
wx.hideToast();
wx.showModal({
title: '提示',职位相关信息有误!请联系管理员!',//修改为弹窗提示方式。如果需要跳转到其他页面可自行修改。如:`wx.navigateTo({ url: '/pages/error/error?msg=' + JSON.stringify(e) });`//跳转到错误页面。```javascript//在app中定义一个方法用于跳转到错误页面function navigateToError(){ var pages = getCurrentPages(); var errorPage = pages[pages.length-1].route; if (errorPage === '/pages/error/error') return; else if (errorPage === '/pages/login/login'){//如果是登录页则返回首页var pages = getCurrentPages(); var homePage = pages[pages.length-1].route; if (homePage === '/pages/index/index') return; else if (homePage === '/pages/mine/mine') return; else if (homePage === '/pages/customer/customer') return; else if (homePage === '/pages/order/order') return; else if (homePage === '/pages/product/product') return; else if (homePage === '/pages/supplier/supplier') return; else if (homePage === '/pages/salesrecord/salesrecord') return; else if (homePage === '/pages/report/report') return; else if (homePage === '/pages/setting/setting') return; else if (homePage === '/pages/aboutus/aboutus') return; else if (homePage === '/pages/feedback/feedback') return; else if (homePage === '/pages/usercenter/usercenter') return; else if (homePage === '/pages/business/business') return; else if (homePage === '/pages/category/category') return; else if (homePage === '/pages/cart/cart') return; else if (homePage === '/pages/checkout/checkout') return; else if (homePage === '/pages/invoice/invoice') return; else if (homePage === '/pages/payment/payment') return; else if (homePage === '/pages/membercard/membercard') return; else if (homePage === '/pages/memberlevel/memberlevel') return; else if (homePage === '/pages/pointsale/pointsale') return; else if (homePage === '/pages/voucher/voucher') return; else if (homePage === '/pages/afterservice/afterservice') return; else if (homePage === '/pages/returnorder/returnorder') return; else if (homePage === '/pages/secapipay/secapipay') return; else if (homePage === '/pages/wechatpay/wechatpay') return; else if (homePage === '/pages/alipaypaymobile/alipaypaymobile') return}else if (errorPage === '/pages/mine/mine'){//如果是我的页面则返回上一级页面var pages = getCurrentPages(); var minePage = pages[pages.length-1].route; if (minePage === '/pages/mine/mine') return; else if (minePage === '/pages/order/order') return; else if (minePage === '/pages/product/product') return; else if (minePage === '/pages/supplier/supplier') return{ title: '错误', content: `您当前处于${errorPage}页面`, success: function() {}, onShow() {}});}else if{(errorPage==='')){}else{//其他情况则返回首页var pages = getCurrentPages(); var homePage = pages[pages.length-1].route; if (homePage === '/pages/index/index') return; else if (homePage === '/pages/mine/mine') return; else if (homePage === '/pages/customer/customer') return{ title: '错误', content: `您当前处于${errorPage}页面`, success: function() {}, onShow() {}});}}navigateToError();//在app中定义一个方法用于跳转到错误页面function navigateToError(){ var pages = getCurrentPages(); var errorPage = pages[pages.length-1].route; if (errorPage === '/pages/error/error') return; else if (errorPage === '/pages/login/login'){//如果是登录页则返回首页var pages = getCurrentPages(); var homePage = pages[pages.length-1].route; if (homePage === '/pages/index/index') return; else if (homePage === '/pages/mine/mine') return; else if (homePage === '/pages职位相关信息有误!请联系管理员!'+JSON
ThinkPHP(后端)是一种基于 PHP 语言开发的 Web 应用程序框架,它提供了丰富的功能和工具来简化开发流程。下面是关于 ThinkPHP 的一些特点和优势:
1. **强大的 MVC 架构**:ThinkPHP 采用模块化的设计思路,将应用程序分为多个模块,每个模块负责处理特定的功能。这种 MVC 架构使得代码更加清晰、易于维护,同时也提高了开发效率。
2. **灵活的数据库支持**:ThinkPHP 支持多种数据库系统,包括 MySQL、SQLite、PostgreSQL 等。你可以根据自己的需求选择合适的数据库类型,并通过简单的配置进行集成。此外,ThinkPHP 还提供了方便的查询构建器和数据操作方法,使你能够轻松地与数据库进行交互。
3. **安全可靠的防护机制**:ThinkPHP 内置了一套安全防护机制,包括输入验证、防止 SQL 注入、跨站脚本攻击(XSS)等。这可以有效地保护应用程序免受恶意攻击,提高系统的安全性。
4. **丰富的插件生态系统**:ThinkPHP 拥有一个活跃的开发社区,提供了大量的插件和扩展库。这些插件可以增强应用程序的功能,例如身份验证、缓存管理、消息队列等。通过适当的插件选择和配置,你可以快速搭建出满足自己需求的应用程序。
5. **易于上手的学习曲线**:由于 ThinkPHP 采用简洁明了的代码结构和友好的文档支持,初学者可以很快地上手使用。同时,它的社区资源丰富,你可以很容易找到相关的教程和示例代码,进一步加深对框架的理解。
综上所述,ThinkPHP 作为一款优秀的后端框架,具有强大的功能和灵活性,适用于各种规模的项目开发。无论是小型个人项目还是大型企业级应用,都可以通过 ThinkPHP 实现高效的开发和管理。
以下是重构后的代码:
```php
// 新增联系人
public function addContact()
{
$time = time(); // 获取当前时间戳
$customerCode = input('post.customer_code'); // 客户代号
$contactName = input('post.contactname'); // 姓名
$contactPhone = input('post.contactphone'); // 电话
$checkedList = input('post.checkedList'); // 职位
$policyMaker = input('post.policymaker'); // 决策人
$contactEmail = input('post.contactemail'); // 邮箱
$contactRemarks = input('post.contactremarks'); // 备注
$username = input('post.username'); // 负责人
$data = [
'customer_code' => $customerCode,
'contacts_name' => $contactName,
'contacts_phone' => $contactPhone,
'contacts_position' => $checkedList,
'key_decision_makers' => $policyMaker,
'contacts_email' => $contactEmail,
'contacts_remark' => $contactRemarks,
'customer_principal' => $businessCode,
'creation_date' => $time,
'enable_flag' => 'Y'
];
db::table('customer_contact_xcx')->insert($data); // 新增联系人
// 获取联系人数据库中的id
$maxId = DB::table('customer_contact_xcx')->max('id');
// 向客户动态添加数据
$data2 = [
'customer_code' => $customerCode,
'operation' => '新增联系人',
'details_id' => $maxId,
'creation_date' => $time,
'customer_principal' => $businessCode,
];
db::table('schedule_flow')->insert($data2);
}
// 查询所有职务
public function customJobSelect()
{
$customerJob = DB::table('customer_job')->select();
echo json_encode($customerJob);
}
```
您好,根据您的描述,您想要实现在表格中点击单元格信息时,获取该行的某个id。同时,您还想要实现点击报价单号跳转到详情页。对于第一个问题,您可以在修改按钮上设置onclick="edit (this)",然后在edit函数中获取val。对于第二个问题,您可以在wxml文件中使用navigator组件来实现跳转页面的功能。
在新页面中,你可以通过`options`对象获取传递的参数。例如,如果你想要获取名为`pricelist_id`的参数,你可以这样做:
```javascript
// 进入页面
onLoad: async function (options) {
var pages = getCurrentPages() // 获取加载的页面
var currentPage = pages[pages.length - 1] // 获取当前页面的对象
var options = currentPage.options // 如果要获取url中所带的参数可以查看options
var pricelist_id = options.pricelist_id; // 控制台输出页面参数
}
```
```javascriptfollow_up(e) {
wx.navigateTo({
url: `/pages/new_followrecord/new_followrecord?customer_code=${e.currentTarget.dataset.id}&issent=1&nowDate=${this.data.nowDate}`,
})
},
```